mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
Fixed bug #49757 (long2ip() can return wrong value in a multi-threaded applications).
# original patch by Florian Anderiasch
This commit is contained in:
parent
ffb07732f7
commit
a3430a6b24
2
NEWS
2
NEWS
@ -13,6 +13,8 @@ PHP NEWS
|
||||
- Fixed a open_basedir bypass in posix_mkfifo() identified by Grzegorz
|
||||
Stachowiak. (Rasmus)
|
||||
|
||||
- Fixed bug #49757 (long2ip() can return wrong value in a multi-threaded
|
||||
applications). (Ilia, Florian Anderiasch)
|
||||
- Fixed bug #49732 (crashes when using fileinfo when timestamp conversion
|
||||
fails). (Pierre)
|
||||
- Fixed bug #49698 (Unexpected change in strnatcasecmp()). (Rasmus)
|
||||
|
@ -3932,6 +3932,9 @@ PHP_FUNCTION(long2ip)
|
||||
int ip_len;
|
||||
unsigned long n;
|
||||
struct in_addr myaddr;
|
||||
#ifdef HAVE_INET_PTON
|
||||
char str[40];
|
||||
#endif
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &ip, &ip_len) == FAILURE) {
|
||||
return;
|
||||
@ -3940,7 +3943,15 @@ PHP_FUNCTION(long2ip)
|
||||
n = strtoul(ip, NULL, 0);
|
||||
|
||||
myaddr.s_addr = htonl(n);
|
||||
#ifdef HAVE_INET_PTON
|
||||
if (inet_ntop(AF_INET, &myaddr, str, sizeof(str))) {
|
||||
RETURN_STRING(str, 1);
|
||||
} else {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
#else
|
||||
RETURN_STRING(inet_ntoa(myaddr), 1);
|
||||
#endif
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user