From: Brian Shire Date: Thu, 10 Jan 2008 20:28:08 +0000 (+0000) Subject: - fix truncation of large values on 64-bit systems in http_build_query X-Git-Tag: RELEASE_2_0_0a1~956 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4ebc0325d8c42e420cf17bedcd0cae6f83525c0e;p=php - fix truncation of large values on 64-bit systems in http_build_query --- diff --git a/ext/standard/http.c b/ext/standard/http.c index a3b7d0aafc..1e341581e8 100644 --- a/ext/standard/http.c +++ b/ext/standard/http.c @@ -121,7 +121,7 @@ PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr, *p = '\0'; } else { /* Is an integer key */ - ekey_len = spprintf(&ekey, 12, "%ld", idx); + ekey_len = spprintf(&ekey, 0, "%ld", idx); newprefix_len = key_prefix_len + num_prefix_len + ekey_len + key_suffix_len + 3 /* %5B */; newprefix = emalloc(newprefix_len + 1); p = newprefix; @@ -172,7 +172,7 @@ PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr, if (num_prefix) { smart_str_appendl(formstr, num_prefix, num_prefix_len); } - ekey_len = spprintf(&ekey, 12, "%ld", idx); + ekey_len = spprintf(&ekey, 0, "%ld", idx); smart_str_appendl(formstr, ekey, ekey_len); efree(ekey); } @@ -198,10 +198,10 @@ PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr, break; case IS_LONG: case IS_BOOL: - ekey_len = spprintf(&ekey, 12, "%ld", Z_LVAL_PP(zdata)); + ekey_len = spprintf(&ekey, 0, "%ld", Z_LVAL_PP(zdata)); break; case IS_DOUBLE: - ekey_len = spprintf(&ekey, 48, "%.*G", (int) EG(precision), Z_DVAL_PP(zdata)); + ekey_len = spprintf(&ekey, 0, "%.*G", (int) EG(precision), Z_DVAL_PP(zdata)); break; default: /* fall back on convert to string */