Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:52054 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 64422 invoked from network); 28 Apr 2011 10:53:10 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 28 Apr 2011 10:53:10 -0000 Authentication-Results: pb1.pair.com smtp.mail=anton.dobkin@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=anton.dobkin@gmail.com; sender-id=pass; domainkeys=bad Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.215.42 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: anton.dobkin@gmail.com X-Host-Fingerprint: 209.85.215.42 mail-ew0-f42.google.com Received: from [209.85.215.42] ([209.85.215.42:46050] helo=mail-ew0-f42.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 58/86-28716-51749BD4 for ; Thu, 28 Apr 2011 06:53:10 -0400 Received: by ewy2 with SMTP id 2so805794ewy.29 for ; Thu, 28 Apr 2011 03:53:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:date:message-id:subject:from:to :content-type; bh=GfbEe7nq+IHxij4a9JnF+SL4b1BHN6wAacUPxltUoM4=; b=hiIffeUOGwOI/GZ39FP6ddXG9k7jNphykS3ypSTTJeoaiAhPV8pBVyvdGlrWBVu380 5MLn1VIX8N7bCbD3dVNSvt9M3wyG0yXvMOowMdjkfdz2u4QpP7XpjMcMk5EzrxxL8sXJ WDFQEINr6UP3kCWlCSkW98Y/0coA4SYXGGOyY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=e4E+FnH0q9ojCcWK0D01eCFNSbYUEnjdihgs24scpKief61nN7MmIoePklT4YYCU7x SjfAX9sgHTpHDCKJcHus5DMIb1kN07bm0yprmPz6ViZt/mYV2sue/QAaft7KFUtNIGDt xV67tdDvh9QOpUlduKowJ8pc9FYJ5Ls63mR1w= MIME-Version: 1.0 Received: by 10.14.126.211 with SMTP id b59mr1536070eei.246.1303987986890; Thu, 28 Apr 2011 03:53:06 -0700 (PDT) Received: by 10.14.22.7 with HTTP; Thu, 28 Apr 2011 03:53:06 -0700 (PDT) Date: Thu, 28 Apr 2011 17:53:06 +0700 Message-ID: To: internals@lists.php.net Content-Type: multipart/mixed; boundary=e0cb4e43af37bfff4704a1f85c7b Subject: Bug in zend_hash_init() From: anton.dobkin@gmail.com (Anton Dobkin) --e0cb4e43af37bfff4704a1f85c7b Content-Type: multipart/alternative; boundary=e0cb4e43af37bfff3b04a1f85c79 --e0cb4e43af37bfff3b04a1f85c79 Content-Type: text/plain; charset=UTF-8 Hi, In function zend_hash_init() when allocate no persistent memory (if flag persistent is 0) for arBuckets element of struct HashTable and virtual memory is over, the function always returns SUCCESS Code: if (persistent) { tmp = (Bucket **) calloc(ht->nTableSize, sizeof(Bucket *)); if (!tmp) { return FAILURE; } ht->arBuckets = tmp; } else { // No checking on return value? tmp = (Bucket **) ecalloc_rel(ht->nTableSize, sizeof(Bucket *)); if (tmp) { ht->arBuckets = tmp; } } --e0cb4e43af37bfff3b04a1f85c79 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi,

In function zend_hash_init() when allocate no persis= tent memory (if flag persistent is 0) for arBuckets element of struct HashT= able and virtual memory is over, =C2=A0the function always returns SUCCESS<= /div>

Code:

=C2=A0=C2=A0 =C2=A0= =C2=A0 if (persistent) {
tmp =3D (Bucket **) calloc(ht->nTableSize, si= zeof(Bucket *));
if (= !tmp) {
= return FAILURE;
}
ht-&= gt;arBuckets =3D tmp;
} else {
=C2=A0=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0//=C2=A0= No=C2=A0checking=C2=A0on=C2=A0return value?
tmp = =3D (Bucket **) ecalloc_rel(ht->nTableSize, sizeof(Bucket *));
if (tmp)= {
ht-= >arBuckets =3D tmp;
=C2=A0=C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0}
--e0cb4e43af37bfff3b04a1f85c79-- --e0cb4e43af37bfff4704a1f85c7b Content-Type: text/x-patch; charset=US-ASCII; name="zend_hash_init.patch" Content-Disposition: attachment; filename="zend_hash_init.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gn1kl83y0 ZGlmZiAtTnVyIHBocC1zcmMtNS4zLm9yaWcvL1plbmQvemVuZF9oYXNoLmMgcGhwLXNyYy01LjMv WmVuZC96ZW5kX2hhc2guYwotLS0gcGhwLXNyYy01LjMub3JpZy8vWmVuZC96ZW5kX2hhc2guYwky MDExLTA0LTI4IDE3OjE0OjMxLjAwMzM1NDM5NiArMDcwMAorKysgcGhwLXNyYy01LjMvWmVuZC96 ZW5kX2hhc2guYwkyMDExLTA0LTI4IDE3OjE1OjQyLjA4MTE2NDM1OSArMDcwMApAQCAtMTc1LDkg KzE3NSwxMCBAQAogCQlodC0+YXJCdWNrZXRzID0gdG1wOwogCX0gZWxzZSB7CiAJCXRtcCA9IChC dWNrZXQgKiopIGVjYWxsb2NfcmVsKGh0LT5uVGFibGVTaXplLCBzaXplb2YoQnVja2V0ICopKTsK LQkJaWYgKHRtcCkgewotCQkJaHQtPmFyQnVja2V0cyA9IHRtcDsKKwkJaWYgKCF0bXApIHsKKwkJ CXJldHVybiBGQUlMVVJFOwogCQl9CisJCWh0LT5hckJ1Y2tldHMgPSB0bXA7CiAJfQogCQogCXJl dHVybiBTVUNDRVNTOwo= --e0cb4e43af37bfff4704a1f85c7b--