{
SigMatch *sm = NULL;
SigMatch *prev_pm = NULL;
- DetectBytetestData *data = NULL;
char *value = NULL;
char *offset = NULL;
int ret = -1;
- data = DetectBytetestParse(optstr, &value, &offset);
+ DetectBytetestData *data = DetectBytetestParse(optstr, &value, &offset);
if (data == NULL)
goto error;
data->value = ((DetectByteExtractData *)bed_sm->ctx)->local_id;
data->flags |= DETECT_BYTETEST_VALUE_BE;
SCFree(value);
+ value = NULL;
}
if (offset != NULL) {
data->offset = ((DetectByteExtractData *)bed_sm->ctx)->local_id;
data->flags |= DETECT_BYTETEST_OFFSET_BE;
SCFree(offset);
+ offset = NULL;
}
sm = SigMatchAlloc();
ret = 0;
return ret;
error:
+ if (offset)
+ SCFree(offset);
+ if (value)
+ SCFree(value);
DetectBytetestFree(data);
return ret;
}