cvs: pecl /http http_api.c

From: Date: Tue, 19 Dec 2006 14:26:47 +0000
Subject: cvs: pecl /http http_api.c
Groups: php.pecl.cvs 
Request: Send a blank email to pecl-cvs+get-6806@lists.php.net to get a copy of this message
mike Tue Dec 19 14:26:47 2006 UTC Modified files: /pecl/http http_api.c Log: - fix infinite loop with http_parse_params("=") http://cvs.php.net/viewvc.cgi/pecl/http/http_api.c?r1=1.161&r2=1.162&diff_format=u Index: pecl/http/http_api.c diff -u pecl/http/http_api.c:1.161 pecl/http/http_api.c:1.162 --- pecl/http/http_api.c:1.161 Thu Nov 23 15:33:43 2006 +++ pecl/http/http_api.c Tue Dec 19 14:26:47 2006 @@ -10,7 +10,7 @@ +--------------------------------------------------------------------+ */ -/* $Id: http_api.c,v 1.161 2006/11/23 15:33:43 mike Exp $ */ +/* $Id: http_api.c,v 1.162 2006/12/19 14:26:47 mike Exp $ */ #define HTTP_WANT_SAPI #include "php_http.h" @@ -411,9 +411,13 @@ if (vallen) { MAKE_STD_ZVAL(entry); array_init(entry); - kdup = estrndup(key, keylen); - add_assoc_stringl_ex(entry, kdup, keylen + 1, (char *) val, vallen, 1); - efree(kdup); + if (keylen) { + kdup = estrndup(key, keylen); + add_assoc_stringl_ex(entry, kdup, keylen + 1, (char *) val, vallen, 1); + efree(kdup); + } else { + add_next_index_stringl(entry, (char *) val, vallen, 1); + } add_next_index_zval(&tmp, entry); } else { add_next_index_stringl(&tmp, (char *) key, keylen, 1); @@ -435,7 +439,9 @@ char *s, *c, *key = NULL, *val = NULL; for(c = s = estrdup(param);;) { + continued: #if 0 + { char *tk = NULL, *tv = NULL; if (key) { @@ -467,8 +473,8 @@ ), *c?*c:'0', tk, tv ); STR_FREE(tk); STR_FREE(tv); + } #endif - continued: switch (st) { case ST_QUOTE: quote: @@ -610,7 +616,15 @@ http_error_ex(HE_WARNING, HTTP_E_INVALID_PARAM, "Unexpected character (%c) at pos %tu of %zu", *c, c-s, strlen(s)); } if (flags & HTTP_PARAMS_ALLOW_FAILURE) { - --c; + if (st == ST_KEY) { + if (key) { + keylen = c - key; + } else { + key = c; + } + } else { + --c; + } st = ST_ADD; goto continued; }

« previous php.pecl.cvs (#6806) next »