summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2018-11-12 23:25:38 +0100
committerChristoph M. Becker <cmbecker69@gmx.de>2018-11-12 23:25:38 +0100
commit78fac5ed95960a909a62863d1803796a82991dba (patch)
tree985e1946bb6de294be559e540319da9d0babd8cc /ext/soap/php_encoding.c
parent86c6b3bdcdba44c90f88895e4d040120fe058c01 (diff)
parent512b93e9d6392877ec8d6a44a2bfead5093fa0d0 (diff)
downloadphp-git-78fac5ed95960a909a62863d1803796a82991dba.tar.gz
Merge branch 'PHP-7.3'
* PHP-7.3: Fix #77141: Signedness issue in SOAP when precision=-1
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r--ext/soap/php_encoding.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index 618da047ab..55281eff6b 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -1084,7 +1084,7 @@ static xmlNodePtr to_xml_double(encodeTypePtr type, zval *data, int style, xmlNo
ZVAL_DOUBLE(&tmp, zval_get_double(data));
- str = (char *) safe_emalloc(EG(precision), 1, MAX_LENGTH_OF_DOUBLE + 1);
+ str = (char *) safe_emalloc(EG(precision) >= 0 ? EG(precision) : 17, 1, MAX_LENGTH_OF_DOUBLE + 1);
php_gcvt(Z_DVAL(tmp), EG(precision), '.', 'E', str);
xmlNodeSetContentLen(ret, BAD_CAST(str), strlen(str));
efree(str);