From: Ilia Alshanetsky Date: Thu, 28 Apr 2005 00:25:25 +0000 (+0000) Subject: Allocation checks around persistent allocs that can fail. X-Git-Tag: php-5.0.1b1~393 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3be50385abd48d8bd643565199c60aebd2bacc22;p=php Allocation checks around persistent allocs that can fail. --- diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index 787db5db86..29b0a716cd 100755 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -323,7 +323,9 @@ static PHP_FUNCTION(dbh_constructor) } pdbh->is_persistent = 1; - pdbh->persistent_id = pemalloc(plen + 1, 1); + if (!(pdbh->persistent_id = pemalloc(plen + 1, 1))) { + php_error_docref(NULL TSRMLS_CC, E_ERROR, "out of memory while allocating PDO handle"); + } memcpy((char *)pdbh->persistent_id, hashkey, plen+1); pdbh->persistent_id_len = plen+1; pdbh->refcount = 1; @@ -973,7 +975,9 @@ int pdo_hash_methods(pdo_dbh_t *dbh, int kind TSRMLS_DC) return 0; } - dbh->cls_methods[kind] = pemalloc(sizeof(HashTable), dbh->is_persistent); + if (!(dbh->cls_methods[kind] = pemalloc(sizeof(HashTable), dbh->is_persistent))) { + php_error_docref(NULL TSRMLS_CC, E_ERROR, "out of memory while allocating PDO methods."); + } zend_hash_init_ex(dbh->cls_methods[kind], 8, NULL, NULL, dbh->is_persistent, 0); while (funcs->fname) {