diff options
| author | Antony Dovgal <tony2001@php.net> | 2007-01-22 08:17:26 +0000 |
|---|---|---|
| committer | Antony Dovgal <tony2001@php.net> | 2007-01-22 08:17:26 +0000 |
| commit | 2c36778e47b6a14156da7a7a8b665637f12b1d3d (patch) | |
| tree | 0e104d3323151bb0f2bb63bb2990acb8640fa861 /ext/standard/array.c | |
| parent | 8ddcd35d171d0ea436803fa3094dbd9743389a93 (diff) | |
| download | php-git-2c36778e47b6a14156da7a7a8b665637f12b1d3d.tar.gz | |
MFH: fix #40191 (use of array_unique() with objects triggers segfault)
Diffstat (limited to 'ext/standard/array.c')
| -rw-r--r-- | ext/standard/array.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index a159c2ae38..be3e73c191 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -2792,7 +2792,7 @@ PHP_FUNCTION(array_change_key_case) Removes duplicate values from array */ PHP_FUNCTION(array_unique) { - zval **array; + zval **array, *tmp; HashTable *target_hash; Bucket *p; struct bucketindex { @@ -2811,8 +2811,8 @@ PHP_FUNCTION(array_unique) RETURN_FALSE; } - /* copy the argument array */ - RETVAL_ZVAL(*array, 1, 0); + array_init(return_value); + zend_hash_copy(Z_ARRVAL_P(return_value), target_hash, (copy_ctor_func_t) zval_add_ref, (void *)&tmp, sizeof(zval*)); if (target_hash->nNumOfElements <= 1) { /* nothing to do */ return; |
