Skip to content

Commit bff49bc

Browse files
committed
Fix SP7 invalid data workaround
1 parent 7dc28f5 commit bff49bc

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/ipts/parser.hpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ class Parser {
9191
*
9292
* @param[in] reader The chunk of data allocated to the HID frame.
9393
*/
94-
void parse_hid_frame(Reader &reader)
94+
bool parse_hid_frame(Reader &reader)
9595
{
9696
const auto frame = reader.read<protocol::hid::Frame>();
9797
Reader sub = reader.sub(frame.size - sizeof(frame));
@@ -119,14 +119,16 @@ class Parser {
119119
* So let's just ignore these packets.
120120
*/
121121
if (reader.size() == 4)
122-
return;
122+
return false;
123123

124124
this->parse_report_frames(sub);
125125
break;
126126
default:
127127
// TODO: Add handler for unknown data and wire up debug tools
128128
break;
129129
}
130+
131+
return true;
130132
}
131133

132134
/*!
@@ -136,8 +138,7 @@ class Parser {
136138
*/
137139
void parse_hid_frames(Reader &reader)
138140
{
139-
while (reader.size() > 0)
140-
this->parse_hid_frame(reader);
141+
while (reader.size() > 0 && this->parse_hid_frame(reader));
141142
}
142143

143144
/*!

0 commit comments

Comments
 (0)