Skip to content

Commit fb246be

Browse files
committed
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix leak in gmp_export()
2 parents 6c6a58e + a29016d commit fb246be

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

ext/gmp/gmp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,7 +1136,7 @@ ZEND_FUNCTION(gmp_export)
11361136
FETCH_GMP_ZVAL(gmpnumber, gmpnumber_arg, temp_a);
11371137

11381138
if (mpz_sgn(gmpnumber) == 0) {
1139-
RETURN_EMPTY_STRING();
1139+
RETVAL_EMPTY_STRING();
11401140
} else {
11411141
size_t bits_per_word = size * 8;
11421142
size_t count = (mpz_sizeinbase(gmpnumber, 2) + bits_per_word - 1) / bits_per_word;
@@ -1145,7 +1145,7 @@ ZEND_FUNCTION(gmp_export)
11451145
mpz_export(ZSTR_VAL(out_string), NULL, order, size, endian, 0, gmpnumber);
11461146
ZSTR_VAL(out_string)[ZSTR_LEN(out_string)] = '\0';
11471147

1148-
RETURN_NEW_STR(out_string);
1148+
RETVAL_NEW_STR(out_string);
11491149
}
11501150

11511151
FREE_GMP_TEMP(temp_a);

ext/gmp/tests/gmp_export.phpt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ foreach ($export as $k => $test) {
5050

5151
var_dump($passed);
5252

53+
// Argument converted from int to GMP
54+
var_dump(bin2hex(gmp_export(0xff)));
55+
5356
// Invalid arguments (zpp failure)
5457
var_dump(gmp_export());
5558

@@ -62,6 +65,7 @@ var_dump(gmp_export(123, 1, GMP_MSW_FIRST | GMP_LSW_FIRST));
6265
var_dump(gmp_export(123, 1, GMP_BIG_ENDIAN | GMP_LITTLE_ENDIAN));
6366
--EXPECTF--
6467
bool(true)
68+
string(2) "ff"
6569

6670
Warning: gmp_export() expects at least 1 parameter, 0 given in %s on line %d
6771
NULL

0 commit comments

Comments
 (0)