Ryan Bloom wrote:
[...]

>> {
>>-    char *res = apr_pstrcat(a, "HTTP_", w, NULL);
>>+    char *res = (char *)apr_palloc(a, 6 + strlen(w));
>>
>
>Pleaes don't use a magic number 6.  Can we just make that strlen("HTTP_") + 1,
>any compiler worth its salt will convert that at compile time.
>

I prefer sizeof("HTTP_") because it gets evaluated at compile time
even with gcc -O0.  This revised patch uses sizeof rather than strlen.

--Brian


Index: server/util_script.c
===================================================================
RCS file: /home/cvspublic/httpd-2.0/server/util_script.c,v
retrieving revision 1.64
diff -u -r1.64 util_script.c
--- server/util_script.c        2001/09/24 21:09:06     1.64
+++ server/util_script.c        2001/11/10 17:35:36
@@ -95,19 +95,26 @@
 #define MALFORMED_MESSAGE "malformed header from script. Bad header="
 #define MALFORMED_HEADER_LENGTH_TO_SHOW 30
 
-static char *http2env(apr_pool_t *a, char *w)
+static char *http2env(apr_pool_t *a, const char *w)
 {
-    char *res = apr_pstrcat(a, "HTTP_", w, NULL);
+    char *res = (char *)apr_palloc(a, sizeof("HTTP_") + strlen(w));
     char *cp = res;
+    char c;
+    *cp++ = 'H';
+    *cp++ = 'T';
+    *cp++ = 'T';
+    *cp++ = 'P';
+    *cp++ = '_';
 
-    while (*++cp) {
-       if (!apr_isalnum(*cp) && *cp != '_') {
-           *cp = '_';
+    while ((c = *w++) != 0) {
+       if (!apr_isalnum(c)) {
+           *cp++ = '_';
        }
        else {
-           *cp = apr_toupper(*cp);
+           *cp++ = apr_toupper(c);
        }
     }
+    *cp = 0;
 
     return res;
 }

Reply via email to