Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:52469 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 49498 invoked from network); 20 May 2011 07:00:30 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 May 2011 07:00:30 -0000 Authentication-Results: pb1.pair.com header.from=confik@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=confik@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.160.170 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: confik@gmail.com X-Host-Fingerprint: 209.85.160.170 mail-gy0-f170.google.com Received: from [209.85.160.170] ([209.85.160.170:55802] helo=mail-gy0-f170.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 09/13-21602-C8116DD4 for ; Fri, 20 May 2011 03:00:30 -0400 Received: by gyb11 with SMTP id 11so1374539gyb.29 for ; Fri, 20 May 2011 00:00:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=561OFshYl8mwBfNWt7YYPkUXrN5o1fnslc+doLMn1F4=; b=WL+5oBkUUBJVbZu8Q2O6wp2wDlsl9b8nf/w6+meY/nCA7ylBgpJvpqO1O1oShmsSnS t1L+n08qqGU3Lz9V038SvgLVHKPveyjoYZwb2VoQLIchtP1SpSKIuuYZqlqundtO+K5B heSWv+oSjXtqHnLTP5MYzTd4c2cUY0c9Mu8GE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; b=brVEFi39SBf3DwuPkOOh0gBbRKzo4q4EYXcj7DqlgCoDLmVkrdD6aMNovpGR9llYNG lhAlouP0h9YucdSQQxDO0xEynXMNAFI7chDqY3q+eAlK2P8sOOHQrL/T3OAibD8h72EK gCBf4HafrfgmF9n0JO78ftf3O+bNffqHDk+bE= Received: by 10.91.181.17 with SMTP id i17mr458661agp.124.1305874811137; Fri, 20 May 2011 00:00:11 -0700 (PDT) MIME-Version: 1.0 Received: by 10.90.90.2 with HTTP; Thu, 19 May 2011 23:59:51 -0700 (PDT) In-Reply-To: References: Date: Fri, 20 May 2011 11:59:51 +0500 Message-ID: To: Gustavo Lopes Cc: internals@lists.php.net Content-Type: multipart/mixed; boundary=0016e640cfd03d30a104a3afacd3 Subject: Re: [PHP-DEV] Need karma for committing test patches From: confik@gmail.com (Alexey Shein) --0016e640cfd03d30a104a3afacd3 Content-Type: text/plain; charset=UTF-8 >> * I think a better strategy would be to just dup the file descriptor gotten >> after the cast in curl_setopt, store it (instead of storing the zval) and >> close it on curl handle destruction. This way we wouldn't have to worry >> about zval refcounts or whether the file descriptor obtained is still valid. >> Could you see if this other strategy works? (otherwise I can do it later >> this week) Ok, I made it to work (thanks for consultation to Pierre and Johannes). You were right, the bug remains with curl_multi_exec too. BTW it happens not only with CURL_STDERR but also with all other options that take fp as a parameter (CURLOPT_FILE, CURLOPT_WRITEHEADER, CURLOPT_INFILE) so I added them to the test and made separate test for curl_multi_exec (see the patch). After some thoughts I think this is the case when user really wants to shoot into his leg - probably from user pov we should generate a warning that we can't write into the supplied pointer (but actually we can :)) like my previous patch did, but it raised a couple of problems: 1) curl_multi_exec is called directly without interception from php and create a wrapper just for this check seems like an overkill to me 2) we need to add 3 more checks to restore default values for all fp options (see above) in two places: curl_exec and curl_multi_exec - again overkill. So I decided to go with this patch. What do you think? P.S. This patch is just againt trunk, if it's ok I will add 5.3 and 5.4 versions too. -- Regards, Shein Alexey --0016e640cfd03d30a104a3afacd3 Content-Type: text/plain; charset=US-ASCII; name="bug48203-duplicate-fp.patch.txt" Content-Disposition: attachment; filename="bug48203-duplicate-fp.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gnwrmswv0 SW5kZXg6IHRydW5rL2V4dC9jdXJsL3BocF9jdXJsLmgKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdHJ1bmsvZXh0 L2N1cmwvcGhwX2N1cmwuaAkocmV2aXNpb24gMzA2OTM4KQorKysgdHJ1bmsvZXh0L2N1cmwvcGhw X2N1cmwuaAkocmV2aXNpb24gKQpAQCAtMTA5LDcgKzEwOSw3IEBACiAJcGhwX2N1cmxfd3JpdGUg KndyaXRlX2hlYWRlcjsKIAlwaHBfY3VybF9yZWFkICAqcmVhZDsKIAl6dmFsICAgICAgICAgICAq cGFzc3dkOwotCXp2YWwgICAgICAgICAgICpzdGRfZXJyOworCUZJTEUgICAgICAgICAgICpzdGRf ZXJyOwogCXBocF9jdXJsX3Byb2dyZXNzICpwcm9ncmVzczsKIH0gcGhwX2N1cmxfaGFuZGxlcnM7 CiAKSW5kZXg6IHRydW5rL2V4dC9jdXJsL3Rlc3RzL2J1ZzQ4MjAzLnBocHQKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gdHJ1bmsvZXh0L2N1cmwvdGVzdHMvYnVnNDgyMDMucGhwdAkocmV2aXNpb24gMjgxOTg5KQor KysgdHJ1bmsvZXh0L2N1cmwvdGVzdHMvYnVnNDgyMDMucGhwdAkocmV2aXNpb24gKQpAQCAtMSw1 ICsxLDUgQEAKIC0tVEVTVC0tCi1CdWcgIzQ4MjAzIChDcmFzaCB3aGVuIENVUkxPUFRfU1RERVJS IGlzIHNldCB0byByZWd1bGFyIGZpbGUpCitCdWcgIzQ4MjAzIChDcmFzaCB3aGVuIGZpbGUgcG9p bnRlcnMgcGFzc2VkIHRvIGN1cmwgYXJlIGNsb3NlZCBiZWZvcmUgY2FsbGluZyBjdXJsX2V4ZWMp CiAtLVNLSVBJRi0tCiA8P3BocCAKIGlmICghZXh0ZW5zaW9uX2xvYWRlZCgiY3VybCIpKSB7CkBA IC0xMiwyMiArMTIsNDMgQEAKIC0tRklMRS0tCiA8P3BocAogCitmdW5jdGlvbiBjaGVja0ZvckNs b3NlZEZpbGVQb2ludGVyKCRjdXJsX29wdGlvbiwgJGRlc2NyaXB0aW9uKSB7Ci0kZnAgPSBmb3Bl bihkaXJuYW1lKF9fRklMRV9fKSAuICcvYnVnNDgyMDMudG1wJywgJ3cnKTsKKwkkZnAgPSBmb3Bl bihkaXJuYW1lKF9fRklMRV9fKSAuICcvYnVnNDgyMDMudG1wJywgJ3cnKTsKIAotJGNoID0gY3Vy bF9pbml0KCk7CisJJGNoID0gY3VybF9pbml0KCk7CiAKKwkvLyB3ZSBhbHNvIG5lZWQgQ1VSTE9Q VF9WRVJCT1NFIHRvIGJlIHNldCB0byB0ZXN0IENVUkxPUFRfU1RERVJSIHByb3Blcmx5CisJaWYg KENVUkxPUFRfU1RERVJSID09ICRjdXJsX29wdGlvbikgewotY3VybF9zZXRvcHQoJGNoLCBDVVJM T1BUX1ZFUkJPU0UsIDEpOworCQljdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVkVSQk9TRSwgMSk7 Ci1jdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1RERVJSLCAkZnApOwotY3VybF9zZXRvcHQoJGNo LCBDVVJMT1BUX1VSTCwgIiIpOworCX0KIAorCWN1cmxfc2V0b3B0KCRjaCwgJGN1cmxfb3B0aW9u LCAkZnApOworCQorCWN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsIGdldGVudigiUEhQX0NV UkxfSFRUUF9SRU1PVEVfU0VSVkVSIikpOworCWN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRV Uk5UUkFOU0ZFUiwgMSk7CisKLWZjbG9zZSgkZnApOyAvLyA8LS0gcHJlbWF0dXJlIGNsb3NlIG9m ICRmcCBjYXVzZWQgYSBjcmFzaCEKKwlmY2xvc2UoJGZwKTsgLy8gPC0tIHByZW1hdHVyZSBjbG9z ZSBvZiAkZnAgY2F1c2VkIGEgY3Jhc2ghCiAKLWN1cmxfZXhlYygkY2gpOworCWN1cmxfZXhlYygk Y2gpOwogCi1lY2hvICJPa1xuIjsKKwljdXJsX2Nsb3NlKCRjaCk7CiAKKwllY2hvICJPayBmb3Ig JGRlc2NyaXB0aW9uXG4iOworfQorCiskb3B0aW9uc190b19jaGVjayA9IGFycmF5KAorCSJDVVJM T1BUX1NUREVSUiIsICJDVVJMT1BUX1dSSVRFSEVBREVSIiwgIkNVUkxPUFRfRklMRSIsICJDVVJM T1BUX0lORklMRSIKKyk7CisKK2ZvcmVhY2goJG9wdGlvbnNfdG9fY2hlY2sgYXMgJG9wdGlvbikg eworCWNoZWNrRm9yQ2xvc2VkRmlsZVBvaW50ZXIoY29uc3RhbnQoJG9wdGlvbiksICRvcHRpb24p OworfQorCiA/PgogLS1DTEVBTi0tCiA8P3BocCBAdW5saW5rKGRpcm5hbWUoX19GSUxFX18pIC4g Jy9idWc0ODIwMy50bXAnKTsgPz4KIC0tRVhQRUNULS0KLU9rCitPayBmb3IgQ1VSTE9QVF9TVERF UlIKK09rIGZvciBDVVJMT1BUX1dSSVRFSEVBREVSCitPayBmb3IgQ1VSTE9QVF9GSUxFCitPayBm b3IgQ1VSTE9QVF9JTkZJTEUKSW5kZXg6IHRydW5rL2V4dC9jdXJsL2ludGVyZmFjZS5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIHRydW5rL2V4dC9jdXJsL2ludGVyZmFjZS5jCShyZXZpc2lvbiAzMDk4ODEpCisr KyB0cnVuay9leHQvY3VybC9pbnRlcmZhY2UuYwkocmV2aXNpb24gKQpAQCAtMTgxMCw3ICsxODEw LDEwIEBACiAJCQkJUkVUVkFMX0ZBTFNFOwogCQkJCXJldHVybiAxOwogCQkJfQotCisJCQkKKwkJ CS8vIGR1cCBmcCB0byBiZSBzYWZlIGlmIHVzZXIgY2xvc2VzIGZwIGJlZm9yZSBjYWxsaW5nIGN1 cmxfZXhlYworCQkJZnAgPSBmZG9wZW4oZHVwKGZpbGVubyhmcCkpLCAoKHBocF9zdHJlYW0gKikg d2hhdCktPm1vZGUpOworCiAJCQllcnJvciA9IENVUkxFX09LOwogCQkJc3dpdGNoIChvcHRpb24p IHsKIAkJCQljYXNlIENVUkxPUFRfRklMRToKQEAgLTE4NDUsMTEgKzE4NDgsNyBAQAogCQkJCQli cmVhazsKIAkJCQljYXNlIENVUkxPUFRfU1RERVJSOgogCQkJCQlpZiAoKChwaHBfc3RyZWFtICop IHdoYXQpLT5tb2RlWzBdICE9ICdyJyB8fCAoKHBocF9zdHJlYW0gKikgd2hhdCktPm1vZGVbMV0g PT0gJysnKSB7Ci0JCQkJCQlpZiAoY2gtPmhhbmRsZXJzLT5zdGRfZXJyKSB7Ci0JCQkJCQkJenZh bF9wdHJfZHRvcigmY2gtPmhhbmRsZXJzLT5zdGRfZXJyKTsKLQkJCQkJCX0KLQkJCQkJCXp2YWxf YWRkX3JlZih6dmFsdWUpOwotCQkJCQkJY2gtPmhhbmRsZXJzLT5zdGRfZXJyID0gKnp2YWx1ZTsK KwkJCQkJCWNoLT5oYW5kbGVycy0+c3RkX2VyciA9IGZwOwogCQkJCQl9IGVsc2UgewogCQkJCQkJ cGhwX2Vycm9yX2RvY3JlZihOVUxMIFRTUk1MU19DQywgRV9XQVJOSU5HLCAidGhlIHByb3ZpZGVk IGZpbGUgaGFuZGxlIGlzIG5vdCB3cml0YWJsZSIpOwogCQkJCQkJUkVUVkFMX0ZBTFNFOwpAQCAt MjUyMCwxMSArMjUxOSw2IEBACiAJZnByaW50ZihzdGRlcnIsICJEVE9SIENBTExFRCwgY2ggPSAl eFxuIiwgY2gpOwogI2VuZGlmCiAKLQkvKiBQcmV2ZW50IGNyYXNoIGluc2lkZSBjVVJMIGlmIHBh c3NlZCBmaWxlIGhhcyBhbHJlYWR5IGJlZW4gY2xvc2VkICovCi0JaWYgKGNoLT5oYW5kbGVycy0+ c3RkX2VyciAmJiBaX1JFRkNPVU5UX1AoY2gtPmhhbmRsZXJzLT5zdGRfZXJyKSA8PSAwKSB7Ci0J CWN1cmxfZWFzeV9zZXRvcHQoY2gtPmNwLCBDVVJMT1BUX1NUREVSUiwgc3RkZXJyKTsKLQl9Ci0K IAljdXJsX2Vhc3lfY2xlYW51cChjaC0+Y3ApOwogCXplbmRfbGxpc3RfY2xlYW4oJmNoLT50b19m cmVlLnN0cik7CiAKQEAgLTI1NTksOSArMjU1Myw2IEBACiAJaWYgKGNoLT5oYW5kbGVycy0+cGFz c3dkKSB7CiAJCXp2YWxfcHRyX2R0b3IoJmNoLT5oYW5kbGVycy0+cGFzc3dkKTsKIAl9Ci0JaWYg KGNoLT5oYW5kbGVycy0+c3RkX2VycikgewotCQl6dmFsX3B0cl9kdG9yKCZjaC0+aGFuZGxlcnMt PnN0ZF9lcnIpOwotCX0KIAlpZiAoY2gtPmhlYWRlci5zdHJfbGVuID4gMCkgewogCQllZnJlZShj aC0+aGVhZGVyLnN0cik7CiAJfQpJbmRleDogdHJ1bmsvZXh0L2N1cmwvdGVzdHMvYnVnNDgyMDNf bXVsdGkucGhwdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9leHQvY3VybC90ZXN0cy9idWc0ODIwM19t dWx0aS5waHB0CShyZXZpc2lvbiApCisrKyB0cnVuay9leHQvY3VybC90ZXN0cy9idWc0ODIwM19t dWx0aS5waHB0CShyZXZpc2lvbiApCkBAIC0wLDAgKzEsNzAgQEAKKy0tVEVTVC0tCitWYXJpYXRp b24gb2YgYnVnICM0ODIwMyB3aXRoIGN1cmxfbXVsdGlfZXhlYyAoQ3Jhc2ggd2hlbiBmaWxlIHBv aW50ZXJzIHBhc3NlZCB0byBjdXJsIGFyZSBjbG9zZWQgYmVmb3JlIGNhbGxpbmcgY3VybF9tdWx0 aV9leGVjKQorLS1TS0lQSUYtLQorPD9waHAKK2lmICghZXh0ZW5zaW9uX2xvYWRlZCgiY3VybCIp KSB7CisJZXhpdCgic2tpcCBjdXJsIGV4dGVuc2lvbiBub3QgbG9hZGVkIik7Cit9CitpZiAoZmFs c2UgPT09IGdldGVudignUEhQX0NVUkxfSFRUUF9SRU1PVEVfU0VSVkVSJykpICB7CisJZXhpdCgi c2tpcCBQSFBfQ1VSTF9IVFRQX1JFTU9URV9TRVJWRVIgZW52IHZhcmlhYmxlIGlzIG5vdCBkZWZp bmVkIik7Cit9Cis/PgorLS1GSUxFLS0KKzw/cGhwCisKK2Z1bmN0aW9uIGNoZWNrRm9yQ2xvc2Vk RmlsZVBvaW50ZXIoJGN1cmxfb3B0aW9uLCAkZGVzY3JpcHRpb24pIHsKKwkkZnAgPSBmb3Blbihk aXJuYW1lKF9fRklMRV9fKSAuICcvYnVnNDgyMDMudG1wJywgJ3cnKTsKKworCSRjaDEgPSBjdXJs X2luaXQoKTsKKwkkY2gyID0gY3VybF9pbml0KCk7CisKKwkkb3B0aW9ucyA9IGFycmF5KAorCQlD VVJMT1BUX1JFVFVSTlRSQU5TRkVSID0+IDEsCisJCSRjdXJsX29wdGlvbiA9PiAkZnAsCisJCUNV UkxPUFRfVVJMID0+IGdldGVudigiUEhQX0NVUkxfSFRUUF9SRU1PVEVfU0VSVkVSIikKKwkpOwor CisJLy8gd2UgYWxzbyBuZWVkIHRvIHNldCBDVVJMT1BUX1ZFUkJPU0UgdG8gdGVzdCBDVVJMT1BU X1NUREVSUiBwcm9wZXJseQorCWlmIChDVVJMT1BUX1NUREVSUiA9PSAkY3VybF9vcHRpb24pIHsK KwkJJG9wdGlvbnNbQ1VSTE9QVF9WRVJCT1NFXSA9IDE7CisJfQorCisJY3VybF9zZXRvcHRfYXJy YXkoJGNoMSwgJG9wdGlvbnMpOworCWN1cmxfc2V0b3B0X2FycmF5KCRjaDIsICRvcHRpb25zKTsK KworCWZjbG9zZSgkZnApOyAvLyA8LS0gcHJlbWF0dXJlIGNsb3NlIG9mICRmcCBjYXVzZWQgYSBj cmFzaCEKKworCSRtaCA9IGN1cmxfbXVsdGlfaW5pdCgpOworCisJY3VybF9tdWx0aV9hZGRfaGFu ZGxlKCRtaCwkY2gxKTsKKwljdXJsX211bHRpX2FkZF9oYW5kbGUoJG1oLCRjaDIpOworCisJJGFj dGl2ZSA9IDA7CisJZG8geworCQljdXJsX211bHRpX2V4ZWMoJG1oLCAkYWN0aXZlKTsKKwl9IHdo aWxlICgkYWN0aXZlID4gMCk7CisKKworCWN1cmxfbXVsdGlfcmVtb3ZlX2hhbmRsZSgkbWgsICRj aDEpOworCWN1cmxfbXVsdGlfcmVtb3ZlX2hhbmRsZSgkbWgsICRjaDIpOworCWN1cmxfbXVsdGlf Y2xvc2UoJG1oKTsKKworCWVjaG8gIk9rIGZvciAkZGVzY3JpcHRpb25cbiI7Cit9CisKKyRvcHRp b25zX3RvX2NoZWNrID0gYXJyYXkoCisJIkNVUkxPUFRfU1RERVJSIiwgIkNVUkxPUFRfV1JJVEVI RUFERVIiLCAiQ1VSTE9QVF9GSUxFIiwgIkNVUkxPUFRfSU5GSUxFIgorKTsKKworZm9yZWFjaCgk b3B0aW9uc190b19jaGVjayBhcyAkb3B0aW9uKSB7CisJY2hlY2tGb3JDbG9zZWRGaWxlUG9pbnRl cihjb25zdGFudCgkb3B0aW9uKSwgJG9wdGlvbik7Cit9CisKKz8+CistLUNMRUFOLS0KKzw/cGhw IEB1bmxpbmsoZGlybmFtZShfX0ZJTEVfXykgLiAnL2J1ZzQ4MjAzLnRtcCcpOyA/PgorLS1FWFBF Q1QtLQorT2sgZm9yIENVUkxPUFRfU1RERVJSCitPayBmb3IgQ1VSTE9QVF9XUklURUhFQURFUgor T2sgZm9yIENVUkxPUFRfRklMRQorT2sgZm9yIENVUkxPUFRfSU5GSUxFCg== --0016e640cfd03d30a104a3afacd3--