summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Watkins <krakjoe@php.net>2017-01-09 05:31:41 +0000
committerJoe Watkins <krakjoe@php.net>2017-01-09 05:31:41 +0000
commit8dd523a21604bfb0c8ac70367396507ce9fe77cb (patch)
tree23f040e8a1070b2e7ebb1cc03284b1e7d36f9f53
parent8c653c163a7c6f8fa3c1394bd1d482480c226177 (diff)
downloadphp-git-8dd523a21604bfb0c8ac70367396507ce9fe77cb.tar.gz
Fixed bug #72979 money_format stores wrong length on AIX
-rw-r--r--NEWS1
-rw-r--r--ext/standard/string.c8
2 files changed, 9 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 224ed83fae..75b850933a 100644
--- a/NEWS
+++ b/NEWS
@@ -27,6 +27,7 @@ PHP NEWS
. Fixed bug #47021 (SoapClient stumbles over WSDL delivered with
"Transfer-Encoding: chunked"). (Rowan Collins)
. Fixed bug #72974 (imap is undefined service on AIX). (matthieu.sarter)
+ . Fixed bug #72979 (money_format stores wrong length AIX). (matthieu.sarter)
- ZIP:
. Fixed bug #70103 (ZipArchive::addGlob ignores remove_all_path option). (cmb,
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 613247bd19..8fd2c55e20 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -5514,7 +5514,15 @@ PHP_FUNCTION(money_format)
zend_string_free(str);
RETURN_FALSE;
}
+#ifdef _AIX
+ /*
+ On AIX strfmon seems to include the terminating \0 in the length returned by strfmon,
+ despite the documentation indicating it is not included.
+ */
+ ZSTR_LEN(str) = strlen(ZSTR_VAL(str));
+#else
ZSTR_LEN(str) = (size_t)res_len;
+#endif
ZSTR_VAL(str)[ZSTR_LEN(str)] = '\0';
RETURN_NEW_STR(zend_string_truncate(str, ZSTR_LEN(str), 0));