Skip to content

Commit 84e6b26

Browse files
committed
Print unknown command as hex with safe bounds and printable fallback
1 parent a9fbfcd commit 84e6b26

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/main.c

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,26 @@ void parse_commands(char *data, int length)
139139

140140
default:
141141
{
142-
LOGE("Unknown command received : %s", data);
142+
const int max_bytes = MAX_APP_NAME_LENGTH;
143+
const int max_length = max_bytes * 3;
144+
char hexStr[max_length];
145+
memset(hexStr, 0, sizeof(hexStr));
146+
147+
if (length > max_bytes) {
148+
length = max_bytes;
149+
}
150+
151+
for (int i = 0; i < length; i++) {
152+
snprintf(&hexStr[i * 3], sizeof(hexStr) - (i * 3), "%02X ", data[i]);
153+
}
154+
155+
char printableStr[max_bytes + 1];
156+
memset(printableStr, 0, sizeof(printableStr));
157+
for (int i = 0; i < length; i++) {
158+
printableStr[i] = (data[i] >= 32 && data[i] < 127) ? data[i] : '.';
159+
}
160+
161+
LOGE("Unknown command received : %s | %s", printableStr, hexStr);
143162
}
144163
break;
145164
}

0 commit comments

Comments
 (0)