]> granicus.if.org Git - php/commitdiff
Fixed bug #72979 money_format stores wrong length on AIX
authorJoe Watkins <krakjoe@php.net>
Mon, 9 Jan 2017 05:31:41 +0000 (05:31 +0000)
committerJoe Watkins <krakjoe@php.net>
Mon, 9 Jan 2017 05:31:41 +0000 (05:31 +0000)
NEWS
ext/standard/string.c

diff --git a/NEWS b/NEWS
index 224ed83fae37e632e226e8872e635f99539f07f0..75b850933a927a342ce262605c92afc4c34d5df7 100644 (file)
--- 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,
index 613247bd190107bac034671adb9bf554444ddc76..8fd2c55e20ec4ea0adcff427e91a731ca225c727 100644 (file)
@@ -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));