detect: transforms check for 0-sized buffer

So as to avoid undefined behavior with a 0-sized variable length
array

Ticket: #5521
pull/7773/head
Philippe Antoine 3 years ago committed by Victor Julien
parent 2cc9152fc9
commit 61b73416e2

@ -107,6 +107,10 @@ static void TransformCompressWhitespace(InspectionBuffer *buffer, void *options)
{
const uint8_t *input = buffer->inspect;
const uint32_t input_len = buffer->inspect_len;
if (input_len == 0) {
return;
}
uint8_t output[input_len]; // we can only shrink
uint8_t *oi = output, *os = output;

@ -103,6 +103,9 @@ static void TransformStripWhitespace(InspectionBuffer *buffer, void *options)
{
const uint8_t *input = buffer->inspect;
const uint32_t input_len = buffer->inspect_len;
if (input_len == 0) {
return;
}
uint8_t output[input_len]; // we can only shrink
uint8_t *oi = output, *os = output;

@ -122,6 +122,9 @@ static void TransformUrlDecode(InspectionBuffer *buffer, void *options)
const uint8_t *input = buffer->inspect;
const uint32_t input_len = buffer->inspect_len;
if (input_len == 0) {
return;
}
uint8_t output[input_len]; // we can only shrink
changed = BufferUrlDecode(input, input_len, output, &output_size);

@ -131,6 +131,9 @@ static void DetectTransformXor(InspectionBuffer *buffer, void *options)
const uint8_t *input = buffer->inspect;
const uint32_t input_len = buffer->inspect_len;
DetectTransformXorData *pxd = options;
if (input_len == 0) {
return;
}
uint8_t output[input_len];
for (uint32_t i = 0; i < input_len; i++) {

Loading…
Cancel
Save