Re: Endless loop in split_on_bdry() of library/parser_multipart.c?
Bojan Smojver <[email protected]>
| Newsgroups | gmane.comp.apache.apreq |
|---|---|
| Message-ID | <[email protected]> |
I propose we fix this as attached. I tested this on Fedora 9 and it works OK. Opinions? -- Bojan
apreq-endless-loop.patch
(text/x-patch, 1.2 KB)
Index: library/parser_multipart.c
===================================================================
--- library/parser_multipart.c (revision 663420)
+++ library/parser_multipart.c (working copy)
@@ -162,11 +162,13 @@
* so we can move previous buckets across
* and retest buf against the full bdry.
*/
+ apr_bucket_brigade * volatile in_v = in;
+
do {
- apr_bucket *f = APR_BRIGADE_FIRST(in);
+ apr_bucket *f = APR_BRIGADE_FIRST(in_v);
APR_BUCKET_REMOVE(f);
APR_BRIGADE_INSERT_TAIL(out, f);
- } while (e != APR_BRIGADE_FIRST(in));
+ } while (e != APR_BRIGADE_FIRST(in_v));
off = 0;
goto look_for_boundary_up_front;
}
Index: acinclude.m4
===================================================================
--- acinclude.m4 (revision 663420)
+++ acinclude.m4 (working copy)
@@ -214,7 +214,6 @@
])
# -Wdeclaration-after-statement is only supported on gcc 3.4+
fi
- APR_ADDTO([CFLAGS], "-fno-strict-aliasing")
APR_ADDTO([CPPFLAGS], "`$APR_CONFIG --cppflags`")