frames: make sure we use a lowercase buffer name

Ticket: 8526

As some C protocols accepted case-insensitive frame names,
a rule using the same frame twice with different cases,
ended up using 2 different buffers,
which ended up in triggering a buffer overflow
pull/15412/head
Philippe Antoine 6 months ago committed by Victor Julien
parent 6ebd0c3cc2
commit c977b2f31b

@ -132,6 +132,11 @@ static int DetectFrameSetup(DetectEngineCtx *de_ctx, Signature *s, const char *s
strlcpy(buffer_name, str, sizeof(buffer_name));
SCLogDebug("long name: %s", buffer_name);
}
// make sure the buffer name is lowercase
// even if the protocol accepted case-insensitive frame name
for (size_t i = 0; i < sizeof(buffer_name) && buffer_name[i]; i++) {
buffer_name[i] = u8_tolower(buffer_name[i]);
}
uint8_t frame_type = (uint8_t)raw_frame_type;
/* TODO we can have TS and TC specific frames */

Loading…
Cancel
Save