39 static void DetectTransformStripWhitespaceRegisterTests(
void);
41 static void TransformStripWhitespace(
InspectionBuffer *buffer,
void *options);
42 static bool TransformStripWhitespaceValidate(
const uint8_t *content, uint16_t content_len,
void *options);
48 "modify buffer to strip whitespace before inspection";
50 "/rules/transforms.html#strip-whitespace";
52 TransformStripWhitespace;
54 TransformStripWhitespaceValidate;
56 DetectTransformStripWhitespaceSetup;
59 DetectTransformStripWhitespaceRegisterTests;
88 static bool TransformStripWhitespaceValidate(
const uint8_t *content,
89 uint16_t content_len,
void *options)
92 for (uint32_t i = 0; i < content_len; i++) {
93 if (isspace(*content++)) {
101 static void TransformStripWhitespace(
InspectionBuffer *buffer,
void *options)
103 const uint8_t *input = buffer->
inspect;
105 uint8_t output[input_len];
106 uint8_t *oi = output, *os = output;
109 for (uint32_t i = 0; i < input_len; i++) {
110 if (!isspace(*input)) {
115 uint32_t output_size = oi - os;
124 const uint8_t *input = buffer->
inspect;
126 uint8_t output[input_len * 2];
127 uint8_t *oi = output, *os = output;
130 for (uint32_t i = 0; i < input_len; i++) {
131 if (isspace(*input)) {
137 uint32_t output_size = oi - os;
144 static int DetectTransformStripWhitespaceTest01(
void)
146 const uint8_t *input = (
const uint8_t *)
" A B C D ";
147 uint32_t input_len = strlen((
char *)input);
153 TransformStripWhitespace(&buffer, NULL);
159 static int DetectTransformStripWhitespaceTest02(
void)
161 const uint8_t *input = (
const uint8_t *)
" A B C D ";
162 uint32_t input_len = strlen((
char *)input);
168 TransformDoubleWhitespace(&buffer);
170 TransformDoubleWhitespace(&buffer);
172 TransformStripWhitespace(&buffer, NULL);
178 static int DetectTransformStripWhitespaceTest03(
void)
180 const char rule[] =
"alert http any any -> any any (http_request_line; strip_whitespace; content:\"GET/HTTP\"; sid:1;)";
183 memset(&th_v, 0,
sizeof(th_v));
196 static void DetectTransformStripWhitespaceRegisterTests(
void)
199 DetectTransformStripWhitespaceTest01);
201 DetectTransformStripWhitespaceTest02);
203 DetectTransformStripWhitespaceTest03);