Justin Erenkrantz <[EMAIL PROTECTED]>Justin Erenkrantz wrote:

[...]

You missed a few files - namely mod_dav, mod_cgid, and proxy.
And, you didn't catch all of the instances of apr_table_entry_t now being const (some of them were being casted to apr_table_entry_t, so you didn't catch that they were losing constness?). The patch below compiles without warnings and
should achieve your intended result.


This patch should catch all cases *except* for mod_isapi.c.


Thanks for catching that. Your patch looks good. Here's a patch for mod_isapi.c. I can't test it, though, because I don't have a win32 compiler.

BTW, what mod_isapi is doing with the array entries is probably
unsafe.  It takes advantage of the fact that apr_table_entry_t
consists of two character pointers and nothing else.  This
code will break if apr_table_entry_t ever gains another field.
That's outside the scope of this particular patch, but it's
probably worth fixing if anyone with a win32 compiler is
interested.

--Brian

Index: modules/arch/win32/mod_isapi.c
===================================================================
RCS file: /home/cvspublic/httpd-2.0/modules/arch/win32/mod_isapi.c,v
retrieving revision 1.50
diff -u -r1.50 mod_isapi.c
--- modules/arch/win32/mod_isapi.c 2001/09/10 03:51:28 1.50
+++ modules/arch/win32/mod_isapi.c 2001/11/11 16:00:08
@@ -567,7 +567,7 @@
/* lf delimited, colon split, comma seperated and
* null terminated list of HTTP_ vars
*/
- char **env = (char**) apr_table_elts(r->subprocess_env)->elts;
+ const char * const *env = (const char* const *) apr_table_elts(r->subprocess_env)->elts;
int nelts = 2 * apr_table_elts(r->subprocess_env)->nelts;
int i;


@@ -601,7 +601,7 @@
/* lf delimited, colon split, comma seperated and
* null terminated list of the raw request header
*/
- char **raw = (char**) apr_table_elts(r->headers_in)->elts;
+ const char * const *raw = (const char* const *) apr_table_elts(r->headers_in)->elts;
int nelts = 2 * apr_table_elts(r->headers_in)->nelts;
int i;







Reply via email to