From: Sterling Hughes Date: Fri, 7 Dec 2001 13:20:18 +0000 (+0000) Subject: Fix long2ip's handling of unsigned longs, by accepting a string argument and X-Git-Tag: ChangeLog~89 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d95a4e2c19d1b9c791efa361648606247637e768;p=php Fix long2ip's handling of unsigned longs, by accepting a string argument and then manually converting the string to an unsigned long using strtoul() --- diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index fc70fb8fa1..ed7dbccc73 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -1153,15 +1153,17 @@ PHP_FUNCTION(ip2long) PHP_FUNCTION(long2ip) { zval **num; + unsigned long n; struct in_addr myaddr; if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &num) == FAILURE) { WRONG_PARAM_COUNT; } + convert_to_string_ex(num); + + n = strtoul(Z_STRVAL_PP(num), NULL, 0); - convert_to_long_ex(num); - myaddr.s_addr = htonl((unsigned long) Z_LVAL_PP(num)); - + myaddr.s_addr = htonl(n); RETURN_STRING(inet_ntoa(myaddr), 1); } /* }}} */ @@ -2882,7 +2884,7 @@ PHP_FUNCTION(import_request_variables) * tab-width: 4 * c-basic-offset: 4 * End: - * vim600: sw=4 ts=4 fdm=marker - * vim<600: sw=4 ts=4 + * vim600: fdm=marker + * vim: noet sw=4 ts=4 */