summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2002-08-01 16:07:19 +0000
committerStanislav Malyshev <stas@php.net>2002-08-01 16:07:19 +0000
commit0e7c1f460941d5e824982d62672ec189dd683a2d (patch)
treeddfbcee747785d08bd46a7a4e080e0fc1e33269f
parentb15651c95f43993d32855913ca32545b594a98af (diff)
downloadphp-git-0e7c1f460941d5e824982d62672ec189dd683a2d.tar.gz
MFZE1
-rw-r--r--Zend/zend_execute.c6
-rw-r--r--Zend/zend_hash.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 573e2c384d..fb0f8b0835 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -791,7 +791,11 @@ static void zend_fetch_dimension_address(znode *result, znode *op1, znode *op2,
zval *new_zval = &EG(uninitialized_zval);
new_zval->refcount++;
- zend_hash_next_index_insert(container->value.ht, &new_zval, sizeof(zval *), (void **) retval);
+ if (zend_hash_next_index_insert(container->value.ht, &new_zval, sizeof(zval *), (void **) retval) == FAILURE) {
+ zend_error(E_WARNING, "Cannot add element to the array as the nexxt element is already occupied");
+ *retval = &EG(uninitialized_zval_ptr);
+ new_zval->refcount--;
+ }
} else {
*retval = zend_fetch_dimension_address_inner(container->value.ht, op2, Ts, type TSRMLS_CC);
}
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index 06f8335d7f..77b4caa656 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -393,7 +393,7 @@ ZEND_API int zend_hash_index_update_or_next_insert(HashTable *ht, ulong h, void
}
UPDATE_DATA(ht, p, pData, nDataSize);
HANDLE_UNBLOCK_INTERRUPTIONS();
- if (h >= ht->nNextFreeElement) {
+ if ((long)h >= (long)ht->nNextFreeElement) {
ht->nNextFreeElement = h + 1;
}
if (pDest) {
@@ -421,7 +421,7 @@ ZEND_API int zend_hash_index_update_or_next_insert(HashTable *ht, ulong h, void
CONNECT_TO_GLOBAL_DLLIST(p, ht);
HANDLE_UNBLOCK_INTERRUPTIONS();
- if (h >= ht->nNextFreeElement) {
+ if ((long)h >= (long)ht->nNextFreeElement) {
ht->nNextFreeElement = h + 1;
}
ht->nNumOfElements++;