- fix config.m4
authorMichael Wallner <mike@php.net>
Sat, 10 Dec 2005 19:00:40 +0000 (19:00 +0000)
committerMichael Wallner <mike@php.net>
Sat, 10 Dec 2005 19:00:40 +0000 (19:00 +0000)
- fix some read beyond errors found thanks to run-tests -m

config.m4
http_api.c
http_headers_api.c
tests/encodings.phpt

index 26832b9986f29798377242ab6f1510e4eb9691f1..9cb097379274c9c36d40b68fdc5b1f526aae6ec3 100644 (file)
--- a/config.m4
+++ b/config.m4
@@ -79,7 +79,7 @@ dnl ----
                
                CURL_LIBS=`$CURL_CONFIG --libs`
                
-               CURL_ZLIB= `$CURL_CONFIG --features | $EGREP libz`
+               CURL_ZLIB=`$CURL_CONFIG --features | $EGREP libz`
                if test "$CURL_ZLIB" = "libz"; then
                        AC_DEFINE([HTTP_HAVE_CURL_ZLIB], [1], [ ])
                fi
index 6f6c5d63993175d7fbc080c12461c6d64307ddf8..04e012133e8d94ace630d136b7c0e6908c201dcb 100644 (file)
@@ -283,7 +283,7 @@ STATUS _http_check_method_ex(const char *method, const char *methods)
 
        if (    (found = strstr(methods, method)) &&
                        (found == method || !isalpha(found[-1])) &&
-                       (!isalpha(found[strlen(method) + 1]))) {
+                       (strlen(found) >= strlen(method) && !isalpha(found[strlen(method)]))) {
                return SUCCESS;
        }
        return FAILURE;
index c04664e9b486afd21ea5971309c7767ee52e1e96..a45e2823c5bf1cf6a1022d0c6c513412136ceea2 100644 (file)
@@ -357,8 +357,8 @@ PHP_HTTP_API STATUS _http_parse_headers_ex(const char *header, HashTable *header
                header_len = strlen(header) + 1;
        }
        line = header;
-
-       while (header_len >= (size_t) (line - begin)) {
+       
+       if (header_len) do {
                int value_len = 0;
                /* note: valgrind may choke on that -- should be safe though */
                switch (*line++)
@@ -372,7 +372,7 @@ PHP_HTTP_API STATUS _http_parse_headers_ex(const char *header, HashTable *header
                        case 0:
                                --value_len; /* we don't have CR so value length is one char less */
                        case '\n':
-                               if ((!(*line - 1)) || ((*line != ' ') && (*line != '\t'))) {
+                               if ((!*(line - 1)) || ((*line != ' ') && (*line != '\t'))) {
                                        http_info i;
                                        
                                        /* response/request line */
@@ -429,7 +429,8 @@ PHP_HTTP_API STATUS _http_parse_headers_ex(const char *header, HashTable *header
                                }
                        break;
                }
-       }
+       } while (header_len > (size_t) (line - begin));
+
        return SUCCESS;
 }
 /* }}} */
index f14867fc32d21759d8796e8e9ecc7923dd8e4e13..e2e08e72d923e56659d0cd315106a12b4c3d7b13 100644 (file)
@@ -9,6 +9,7 @@ skipif(!function_exists('http_gzencode'), 'need zlib');
 <?php
 echo "-TEST\n";
 
+set_time_limit(0);
 error_reporting(E_ALL);
 
 $s = '';