Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:1163 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 3551 invoked from network); 2 May 2003 13:11:06 -0000 Received: from unknown (HELO milton.schell.de) (217.160.72.35) by pb1.pair.com with SMTP; 2 May 2003 13:11:06 -0000 Received: (qmail 24633 invoked by uid 501); 2 May 2003 13:11:01 -0000 Received: from unknown (HELO eco.foo) (80.143.15.128) by kdserv.de with SMTP; 2 May 2003 13:11:01 -0000 Received: from localhost (localhost [127.0.0.1]) by eco.foo (Postfix) with ESMTP id BCEF345214; Fri, 2 May 2003 15:10:59 +0200 (CEST) Date: Fri, 2 May 2003 15:10:59 +0200 (CEST) X-X-Sender: sas@eco.foo To: Wez Furlong Cc: internals@lists.php.net In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="662784-1692711293-1051881059=:358" Subject: Re: [PHP-DEV] [PATCH] Deprecate use of stdio From: sascha@schumann.cx (Sascha Schumann) --662784-1692711293-1051881059=:358 Content-Type: TEXT/PLAIN; charset=US-ASCII Here is an updated version. Patch 01/03 are unchanged. - Fixed fread argument order so that even my glibc likes it - Improved file_handle code in the ini scanner - Moved open_function struct member to the end - Sascha --662784-1692711293-1051881059=:358 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-02-add-zend_open Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=patch-02-add-zend_open SW5kZXg6IFplbmQvemVuZC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS Q1MgZmlsZTogL3JlcG9zaXRvcnkvWmVuZC96ZW5kLmMsdg0KcmV0cmlldmlu ZyByZXZpc2lvbiAxLjE2Mi4yLjINCmRpZmYgLXUgLXIxLjE2Mi4yLjIgemVu ZC5jDQotLS0gWmVuZC96ZW5kLmMJMzEgRGVjIDIwMDIgMTY6MjI6NTYgLTAw MDAJMS4xNjIuMi4yDQorKysgWmVuZC96ZW5kLmMJMiBNYXkgMjAwMyAxMzow NDoxNSAtMDAwMA0KQEAgLTQ4LDYgKzQ4LDcgQEANCiBaRU5EX0FQSSBpbnQg KCp6ZW5kX3ByaW50ZikoY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pOw0KIFpF TkRfQVBJIHplbmRfd3JpdGVfZnVuY190IHplbmRfd3JpdGU7DQogWkVORF9B UEkgRklMRSAqKCp6ZW5kX2ZvcGVuKShjb25zdCBjaGFyICpmaWxlbmFtZSwg Y2hhciAqKm9wZW5lZF9wYXRoKTsNCitaRU5EX0FQSSB6ZW5kX2Jvb2wgKCp6 ZW5kX29wZW4pKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCB6ZW5kX2ZpbGVfaGFu ZGxlICopOw0KIFpFTkRfQVBJIHZvaWQgKCp6ZW5kX2Jsb2NrX2ludGVycnVw dGlvbnMpKHZvaWQpOw0KIFpFTkRfQVBJIHZvaWQgKCp6ZW5kX3VuYmxvY2tf aW50ZXJydXB0aW9ucykodm9pZCk7DQogWkVORF9BUEkgdm9pZCAoKnplbmRf dGlja3NfZnVuY3Rpb24pKGludCB0aWNrcyk7DQpAQCAtMjU1LDYgKzI1Niwx OCBAQA0KIH0NCiANCiANCitzdGF0aWMgemVuZF9ib29sIHplbmRfb3Blbl93 cmFwcGVyKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCB6ZW5kX2ZpbGVfaGFuZGxl ICpmaCkNCit7DQorCWZoLT5oYW5kbGUuZnAgPSB6ZW5kX2ZvcGVuKGZpbGVu YW1lLCAmZmgtPm9wZW5lZF9wYXRoKTsNCisNCisJaWYgKGZoLT5oYW5kbGUu ZnApIHsNCisJCWZoLT50eXBlID0gWkVORF9IQU5ETEVfRlA7DQorCQlyZXR1 cm4gU1VDQ0VTUzsNCisJfQ0KKwlyZXR1cm4gRkFJTFVSRTsNCit9DQorDQor DQogc3RhdGljIEZJTEUgKnplbmRfZm9wZW5fd3JhcHBlcihjb25zdCBjaGFy ICpmaWxlbmFtZSwgY2hhciAqKm9wZW5lZF9wYXRoKQ0KIHsNCiAJaWYgKG9w ZW5lZF9wYXRoKSB7DQpAQCAtNDMyLDYgKzQ0NSwxMCBAQA0KIAl6ZW5kX2Zv cGVuID0gdXRpbGl0eV9mdW5jdGlvbnMtPmZvcGVuX2Z1bmN0aW9uOw0KIAlp ZiAoIXplbmRfZm9wZW4pIHsNCiAJCXplbmRfZm9wZW4gPSB6ZW5kX2ZvcGVu X3dyYXBwZXI7DQorCX0NCisJemVuZF9vcGVuID0gdXRpbGl0eV9mdW5jdGlv bnMtPm9wZW5fZnVuY3Rpb247DQorCWlmICghemVuZF9vcGVuKSB7DQorCQl6 ZW5kX29wZW4gPSB6ZW5kX29wZW5fd3JhcHBlcjsNCiAJfQ0KIAl6ZW5kX21l c3NhZ2VfZGlzcGF0Y2hlcl9wID0gdXRpbGl0eV9mdW5jdGlvbnMtPm1lc3Nh Z2VfaGFuZGxlcjsNCiAJemVuZF9ibG9ja19pbnRlcnJ1cHRpb25zID0gdXRp bGl0eV9mdW5jdGlvbnMtPmJsb2NrX2ludGVycnVwdGlvbnM7DQpJbmRleDog WmVuZC96ZW5kLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxl OiAvcmVwb3NpdG9yeS9aZW5kL3plbmQuaCx2DQpyZXRyaWV2aW5nIHJldmlz aW9uIDEuMTY0LjIuNQ0KZGlmZiAtdSAtcjEuMTY0LjIuNSB6ZW5kLmgNCi0t LSBaZW5kL3plbmQuaAkxOCBBcHIgMjAwMyAxNzo1NzowMCAtMDAwMAkxLjE2 NC4yLjUNCisrKyBaZW5kL3plbmQuaAkyIE1heSAyMDAzIDEzOjA0OjE1IC0w MDAwDQpAQCAtMjc5LDYgKzI3OSw3IEBADQogCWludCAoKmhhbmRsZV9wcm9w ZXJ0eV9zZXQpKHplbmRfcHJvcGVydHlfcmVmZXJlbmNlICpwcm9wZXJ0eV9y ZWZlcmVuY2UsIHp2YWwgKnZhbHVlKTsNCiB9Ow0KIA0KK3N0cnVjdCBfemVu ZF9maWxlX2hhbmRsZTsNCiANCiANCiB0eXBlZGVmIHN0cnVjdCBfemVuZF91 dGlsaXR5X2Z1bmN0aW9ucyB7DQpAQCAtMjkyLDYgKzI5Myw3IEBADQogCWlu dCAoKmdldF9jb25maWd1cmF0aW9uX2RpcmVjdGl2ZSkoY2hhciAqbmFtZSwg dWludCBuYW1lX2xlbmd0aCwgenZhbCAqY29udGVudHMpOw0KIAl2b2lkICgq dGlja3NfZnVuY3Rpb24pKGludCB0aWNrcyk7DQogCXZvaWQgKCpvbl90aW1l b3V0KShpbnQgc2Vjb25kcyBUU1JNTFNfREMpOw0KKwl6ZW5kX2Jvb2wgKCpv cGVuX2Z1bmN0aW9uKShjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0IF96 ZW5kX2ZpbGVfaGFuZGxlICopOw0KIH0gemVuZF91dGlsaXR5X2Z1bmN0aW9u czsNCiANCiAJCQ0KQEAgLTQxNyw2ICs0MTksNyBAQA0KIGV4dGVybiBaRU5E X0FQSSBpbnQgKCp6ZW5kX3ByaW50ZikoY29uc3QgY2hhciAqZm9ybWF0LCAu Li4pOw0KIGV4dGVybiBaRU5EX0FQSSB6ZW5kX3dyaXRlX2Z1bmNfdCB6ZW5k X3dyaXRlOw0KIGV4dGVybiBaRU5EX0FQSSBGSUxFICooKnplbmRfZm9wZW4p KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjaGFyICoqb3BlbmVkX3BhdGgpOw0K K2V4dGVybiBaRU5EX0FQSSB6ZW5kX2Jvb2wgKCp6ZW5kX29wZW4pKGNvbnN0 IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgX3plbmRfZmlsZV9oYW5kbGUgKmZo KTsNCiBleHRlcm4gWkVORF9BUEkgdm9pZCAoKnplbmRfYmxvY2tfaW50ZXJy dXB0aW9ucykodm9pZCk7DQogZXh0ZXJuIFpFTkRfQVBJIHZvaWQgKCp6ZW5k X3VuYmxvY2tfaW50ZXJydXB0aW9ucykodm9pZCk7DQogZXh0ZXJuIFpFTkRf QVBJIHZvaWQgKCp6ZW5kX3RpY2tzX2Z1bmN0aW9uKShpbnQgdGlja3MpOw0K --662784-1692711293-1051881059=:358 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-04-lex-file-handle Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=patch-04-lex-file-handle SW5kZXg6IFplbmQvZmxleC5za2wNCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N ClJDUyBmaWxlOiAvcmVwb3NpdG9yeS9aZW5kL2ZsZXguc2tsLHYNCnJldHJp ZXZpbmcgcmV2aXNpb24gMS4yNw0KZGlmZiAtdSAtcjEuMjcgZmxleC5za2wN Ci0tLSBaZW5kL2ZsZXguc2tsCTE1IEF1ZyAyMDAyIDAwOjIyOjM2IC0wMDAw CTEuMjcNCisrKyBaZW5kL2ZsZXguc2tsCTIgTWF5IDIwMDMgMTM6MDQ6MTgg LTAwMDANCkBAIC0xMCw2ICsxMCw5IEBADQogDQogJS0NCiAjaW5jbHVkZSA8 c3RkaW8uaD4NCisjaWZkZWYgSEFWRV9VTklTVERfSA0KKyMgaW5jbHVkZSA8 dW5pc3RkLmg+DQorI2VuZGlmDQogJSoNCiANCiANCkBAIC0xNTQsNyArMTU3 LDcgQEANCiBzdHJ1Y3QgeXlfYnVmZmVyX3N0YXRlDQogCXsNCiAlLQ0KLQlG SUxFICp5eV9pbnB1dF9maWxlOw0KKwlzdHJ1Y3QgX3plbmRfZmlsZV9oYW5k bGUgKnl5X2lucHV0X2ZpbGU7DQogJSsNCiAJaXN0cmVhbSogeXlfaW5wdXRf ZmlsZTsNCiAlKg0KQEAgLTI1NiwxMyArMjU5LDEzIEBADQogLyogc3RhdGlj IGludCB5eV9kaWRfYnVmZmVyX3N3aXRjaF9vbl9lb2Y7ICovDQogI2RlZmlu ZSB5eV9kaWRfYnVmZmVyX3N3aXRjaF9vbl9lb2YgU0NORyhfeXlfZGlkX2J1 ZmZlcl9zd2l0Y2hfb25fZW9mKQ0KIA0KLXZvaWQgeXlyZXN0YXJ0IFlZX1BS T1RPKCggRklMRSAqaW5wdXRfZmlsZSBUU1JNTFNfREMgKSk7DQordm9pZCB5 eXJlc3RhcnQgWVlfUFJPVE8oKCBzdHJ1Y3QgX3plbmRfZmlsZV9oYW5kbGUg ICppbnB1dF9maWxlIFRTUk1MU19EQyApKTsNCiANCiB2b2lkIHl5X3N3aXRj aF90b19idWZmZXIgWVlfUFJPVE8oKCBZWV9CVUZGRVJfU1RBVEUgbmV3X2J1 ZmZlciBUU1JNTFNfREMgKSk7DQogdm9pZCB5eV9sb2FkX2J1ZmZlcl9zdGF0 ZSBZWV9QUk9UTygoIFRTUk1MU19EICkpOw0KLVlZX0JVRkZFUl9TVEFURSB5 eV9jcmVhdGVfYnVmZmVyIFlZX1BST1RPKCggRklMRSAqZmlsZSwgaW50IHNp emUgVFNSTUxTX0RDICkpOw0KK1lZX0JVRkZFUl9TVEFURSB5eV9jcmVhdGVf YnVmZmVyIFlZX1BST1RPKCggc3RydWN0IF96ZW5kX2ZpbGVfaGFuZGxlICpm aWxlLCBpbnQgc2l6ZSBUU1JNTFNfREMgKSk7DQogdm9pZCB5eV9kZWxldGVf YnVmZmVyIFlZX1BST1RPKCggWVlfQlVGRkVSX1NUQVRFIGIgVFNSTUxTX0RD ICkpOw0KLXZvaWQgeXlfaW5pdF9idWZmZXIgWVlfUFJPVE8oKCBZWV9CVUZG RVJfU1RBVEUgYiwgRklMRSAqZmlsZSBUU1JNTFNfREMgKSk7DQordm9pZCB5 eV9pbml0X2J1ZmZlciBZWV9QUk9UTygoIFlZX0JVRkZFUl9TVEFURSBiLCBz dHJ1Y3QgX3plbmRfZmlsZV9oYW5kbGUgKmZpbGUgVFNSTUxTX0RDICkpOw0K IHZvaWQgeXlfZmx1c2hfYnVmZmVyIFlZX1BST1RPKCggWVlfQlVGRkVSX1NU QVRFIGIgVFNSTUxTX0RDICkpOw0KICNkZWZpbmUgWVlfRkxVU0hfQlVGRkVS IHl5X2ZsdXNoX2J1ZmZlciggeXlfY3VycmVudF9idWZmZXIgVFNSTUxTX0ND ICkNCiANCkBAIC00MzUsMTkgKzQzOCwyMyBAQA0KIC8qIENvcHkgd2hhdGV2 ZXIgdGhlIGxhc3QgcnVsZSBtYXRjaGVkIHRvIHRoZSBzdGFuZGFyZCBvdXRw dXQuICovDQogDQogI2lmbmRlZiBFQ0hPDQotJS0gU3RhbmRhcmQgKG5vbi1D KyspIGRlZmluaXRpb24NCi0vKiBUaGlzIHVzZWQgdG8gYmUgYW4gZnB1dHMo KSwgYnV0IHNpbmNlIHRoZSBzdHJpbmcgbWlnaHQgY29udGFpbiBOVUwncywN Ci0gKiB3ZSBub3cgdXNlIGZ3cml0ZSgpLg0KLSAqLw0KLSNkZWZpbmUgRUNI TyAodm9pZCkgZndyaXRlKCB5eXRleHQsIHl5bGVuZywgMSwgU0NORyh5eV9v dXQpICkNCi0lKyBDKysgZGVmaW5pdGlvbg0KLSNkZWZpbmUgRUNITyBMZXhl ck91dHB1dCggeXl0ZXh0LCB5eWxlbmcgKQ0KLSUqDQorI2RlZmluZSBFQ0hP DQogI2VuZGlmDQogDQogLyogR2V0cyBpbnB1dCBhbmQgc3R1ZmZzIGl0IGlu dG8gImJ1ZiIuICBudW1iZXIgb2YgY2hhcmFjdGVycyByZWFkLCBvciBZWV9O VUxMLA0KICAqIGlzIHJldHVybmVkIGluICJyZXN1bHQiLg0KICAqLw0KKw0K KyNkZWZpbmUgWVlfSU5QVVQoYnVmLHJlc3VsdCxtYXhfc2l6ZSkgZG8gewkJ CQlcDQorCXJlc3VsdCA9IHl5aW4tPnR5cGUgPT0gWkVORF9IQU5ETEVfRkQg PyAJCQlcDQorCQkJcmVhZCh5eWluLT5oYW5kbGUuZmQsIGJ1ZiwgbWF4X3Np emUpCQlcDQorCQkJOiB5eWluLT50eXBlID09IFpFTkRfSEFORExFX0ZQID8g CQkJXA0KKwkJCWZyZWFkKGJ1ZiwgMSwgbWF4X3NpemUsIHl5aW4tPmhhbmRs ZS5mcCkJXA0KKwkJCTogLTE7CQkJCQkJCQkJCVwNCisJaWYgKHJlc3VsdCA8 IDApCQkJCQkJCQkJCVwNCisJCVlZX0ZBVEFMX0VSUk9SKCJpbnB1dCBpbiBm bGV4IHNjYW5uZXIgZmFpbGVkIik7CVwNCit9IHdoaWxlICgwKQ0KKw0KICNp Zm5kZWYgWVlfSU5QVVQNCiAjZGVmaW5lIFlZX0lOUFVUKGJ1ZixyZXN1bHQs bWF4X3NpemUpIFwNCiAlJSBmcmVhZCgpL3JlYWQoKSBkZWZpbml0aW9uIG9m IFlZX0lOUFVUIGdvZXMgaGVyZSB1bmxlc3Mgd2UncmUgZG9pbmcgQysrDQpA QCAtNTI0LDYgKzUzMSw3IEBADQogCQlpZiAoICEgeXlfc3RhcnQgKQ0KIAkJ CXl5X3N0YXJ0ID0gMTsJLyogZmlyc3Qgc3RhcnQgc3RhdGUgKi8NCiANCisj aWYgMA0KIAkJaWYgKCAhIFNDTkcoeXlfaW4pICkNCiAlLQ0KIAkJCVNDTkco eXlfaW4pID0gc3RkaW47DQpAQCAtNTM3LDYgKzU0NSw3IEBADQogJSsNCiAJ CQlTQ05HKHl5X291dCkgPSAmY291dDsNCiAlKg0KKyNlbmRpZg0KIA0KIAkJ aWYgKCAhIHl5X2N1cnJlbnRfYnVmZmVyICkNCiAJCQl5eV9jdXJyZW50X2J1 ZmZlciA9DQpAQCAtMTExMSwxMCArMTEyMCwxMCBAQA0KIA0KICUtDQogI2lm ZGVmIFlZX1VTRV9QUk9UT1MNCi12b2lkIHl5cmVzdGFydCggRklMRSAqaW5w dXRfZmlsZSBUU1JNTFNfREMgKQ0KK3ZvaWQgeXlyZXN0YXJ0KCBzdHJ1Y3Qg X3plbmRfZmlsZV9oYW5kbGUgKmlucHV0X2ZpbGUgVFNSTUxTX0RDICkNCiAj ZWxzZQ0KIHZvaWQgeXlyZXN0YXJ0KCBpbnB1dF9maWxlIFRTUk1MU19DQyAp DQotRklMRSAqaW5wdXRfZmlsZTsNCitzdHJ1Y3QgX3plbmRfZmlsZV9oYW5k bGUgKmlucHV0X2ZpbGU7DQogI2VuZGlmDQogJSsNCiB2b2lkIHl5RmxleExl eGVyOjp5eXJlc3RhcnQoIGlzdHJlYW0qIGlucHV0X2ZpbGUgVFNSTUxTX0RD ICkNCkBAIC0xMTg3LDEwICsxMTk2LDEwIEBADQogDQogJS0NCiAjaWZkZWYg WVlfVVNFX1BST1RPUw0KLVlZX0JVRkZFUl9TVEFURSB5eV9jcmVhdGVfYnVm ZmVyKCBGSUxFICpmaWxlLCBpbnQgc2l6ZSBUU1JNTFNfREMgKQ0KK1lZX0JV RkZFUl9TVEFURSB5eV9jcmVhdGVfYnVmZmVyKCBzdHJ1Y3QgX3plbmRfZmls ZV9oYW5kbGUgKmZpbGUsIGludCBzaXplIFRTUk1MU19EQyApDQogI2Vsc2UN CiBZWV9CVUZGRVJfU1RBVEUgeXlfY3JlYXRlX2J1ZmZlciggZmlsZSwgc2l6 ZSBUU1JNTFNfQ0MgKQ0KLUZJTEUgKmZpbGU7DQorc3RydWN0IF96ZW5kX2Zp bGVfaGFuZGxlICpmaWxlOw0KIGludCBzaXplOw0KICNpZmRlZiBaVFMNCiB2 b2lkICoqKnRzcm1fbHM7DQpAQCAtMTI1OCwxMSArMTI2NywxMSBAQA0KICNl bmRpZg0KIA0KICNpZmRlZiBZWV9VU0VfUFJPVE9TDQotdm9pZCB5eV9pbml0 X2J1ZmZlciggWVlfQlVGRkVSX1NUQVRFIGIsIEZJTEUgKmZpbGUgVFNSTUxT X0RDICkNCit2b2lkIHl5X2luaXRfYnVmZmVyKCBZWV9CVUZGRVJfU1RBVEUg Yiwgc3RydWN0IF96ZW5kX2ZpbGVfaGFuZGxlICpmaWxlIFRTUk1MU19EQyAp DQogI2Vsc2UNCiB2b2lkIHl5X2luaXRfYnVmZmVyKCBiLCBmaWxlIFRTUk1M U19DQyApDQogWVlfQlVGRkVSX1NUQVRFIGI7DQotRklMRSAqZmlsZTsNCitz dHJ1Y3QgX3plbmRfZmlsZV9oYW5kbGUgKmZpbGU7DQogI2lmZGVmIFpUUw0K IHZvaWQgKioqdHNybV9sczsNCiAjZW5kaWYNCkBAIC0xMjg2LDcgKzEyOTUs NyBAQA0KICNpZiBZWV9ORVZFUl9JTlRFUkFDVElWRQ0KIAliLT55eV9pc19p bnRlcmFjdGl2ZSA9IDA7DQogI2Vsc2UNCi0JYi0+eXlfaXNfaW50ZXJhY3Rp dmUgPSBmaWxlID8gKGlzYXR0eSggZmlsZW5vKGZpbGUpICkgPiAwKSA6IDA7 DQorCWItPnl5X2lzX2ludGVyYWN0aXZlID0gZmlsZSA/IChmaWxlLT5pc190 dHkgPT0gWkVORF9UVFlfWUVTID8gMSA6IGZpbGUtPmlzX3R0eSA9PSBaRU5E X1RUWV9OTyA/IDAgOiBmaWxlLT50eXBlID09IFpFTkRfSEFORExFX0ZEID8g ZmlsZS0+aXNfdHR5ID0gaXNhdHR5KGZpbGUtPmhhbmRsZS5mZCkgOiBmaWxl LT50eXBlID09IFpFTkRfSEFORExFX0ZQID8gZmlsZS0+aXNfdHR5ID0gaXNh dHR5KGZpbGVubyhmaWxlLT5oYW5kbGUuZnApKSA6IDApIDogMDsNCiAjZW5k aWYNCiAjZW5kaWYNCiAlKw0KSW5kZXg6IFplbmQvemVuZF9nbG9iYWxzLmgN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvcmVwb3NpdG9y eS9aZW5kL3plbmRfZ2xvYmFscy5oLHYNCnJldHJpZXZpbmcgcmV2aXNpb24g MS45My4yLjENCmRpZmYgLXUgLXIxLjkzLjIuMSB6ZW5kX2dsb2JhbHMuaA0K LS0tIFplbmQvemVuZF9nbG9iYWxzLmgJMzEgRGVjIDIwMDIgMTY6MjM6MDIg LTAwMDAJMS45My4yLjENCisrKyBaZW5kL3plbmRfZ2xvYmFscy5oCTIgTWF5 IDIwMDMgMTM6MDQ6MTggLTAwMDANCkBAIC0yMzgsOCArMjM4LDggQEANCiB9 Ow0KIA0KIHN0cnVjdCBfemVuZF9zY2FubmVyX2dsb2JhbHMgew0KLQlGSUxF ICp5eV9pbjsNCi0JRklMRSAqeXlfb3V0Ow0KKwl6ZW5kX2ZpbGVfaGFuZGxl ICp5eV9pbjsNCisJemVuZF9maWxlX2hhbmRsZSAqeXlfb3V0Ow0KIAlpbnQg eXlfbGVuZzsNCiAJY2hhciAqeXlfdGV4dDsNCiAJc3RydWN0IHl5X2J1ZmZl cl9zdGF0ZSAqY3VycmVudF9idWZmZXI7DQpJbmRleDogWmVuZC96ZW5kX2lu aV9zY2FubmVyLmwNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxl OiAvcmVwb3NpdG9yeS9aZW5kL3plbmRfaW5pX3NjYW5uZXIubCx2DQpyZXRy aWV2aW5nIHJldmlzaW9uIDEuMjYuMi4xDQpkaWZmIC11IC1yMS4yNi4yLjEg emVuZF9pbmlfc2Nhbm5lci5sDQotLS0gWmVuZC96ZW5kX2luaV9zY2FubmVy LmwJMjcgRmViIDIwMDMgMDA6MTA6NDMgLTAwMDAJMS4yNi4yLjENCisrKyBa ZW5kL3plbmRfaW5pX3NjYW5uZXIubAkyIE1heSAyMDAzIDEzOjA0OjE4IC0w MDAwDQpAQCAtNjksMjIgKzY5LDE4IEBADQogDQogaW50IHplbmRfaW5pX29w ZW5fZmlsZV9mb3Jfc2Nhbm5pbmcoemVuZF9maWxlX2hhbmRsZSAqZmggVFNS TUxTX0RDKQ0KIHsNCi0JRklMRSAqZnA7DQotDQogCXN3aXRjaCAoZmgtPnR5 cGUpIHsNCi0JCWNhc2UgWkVORF9IQU5ETEVfRlA6DQotCQkJZnAgPSBmaC0+ aGFuZGxlLmZwOw0KLQkJCWJyZWFrOw0KIAkJY2FzZSBaRU5EX0hBTkRMRV9G SUxFTkFNRToNCi0JCQlmcCA9IHplbmRfZm9wZW4oZmgtPmZpbGVuYW1lLCBO VUxMKTsNCiAJCQlmaC0+dHlwZSA9IFpFTkRfSEFORExFX0ZQOw0KKwkJCWZo LT5oYW5kbGUuZnAgPSB6ZW5kX2ZvcGVuKGZoLT5maWxlbmFtZSwgTlVMTCk7 DQogCQkJYnJlYWs7DQotCQlkZWZhdWx0Og0KLQkJCXJldHVybiBGQUlMVVJF Ow0KIAl9DQogDQorCWlmICghWkVORF9JU19WQUxJRF9GSUxFX0hBTkRMRShm aCkpDQorCQlyZXR1cm4gRkFJTFVSRTsNCisNCiAJaW5pdF9pbmlfc2Nhbm5l cihUU1JNTFNfQyk7DQotCXl5aW4gPSBmcDsNCisJeXlpbiA9IGZoOw0KIAl5 eV9zd2l0Y2hfdG9fYnVmZmVyKHl5X2NyZWF0ZV9idWZmZXIoeXlpbiwgWVlf QlVGX1NJWkUgVFNSTUxTX0NDKSBUU1JNTFNfQ0MpOw0KIAlpbmlfZmlsZW5h bWUgPSBmaC0+ZmlsZW5hbWU7DQogCXJldHVybiBTVUNDRVNTOw0KQEAgLTk0 LDYgKzkwLDkgQEANCiB2b2lkIHplbmRfaW5pX2Nsb3NlX2ZpbGUoemVuZF9m aWxlX2hhbmRsZSAqZmggVFNSTUxTX0RDKQ0KIHsNCiAJc3dpdGNoIChmaC0+ dHlwZSkgew0KKwkJY2FzZSBaRU5EX0hBTkRMRV9GRDoNCisJCQljbG9zZShm aC0+aGFuZGxlLmZkKTsNCisJCQlicmVhazsNCiAJCWNhc2UgWkVORF9IQU5E TEVfRlA6DQogCQkJZmNsb3NlKGZoLT5oYW5kbGUuZnApOw0KIAkJCWJyZWFr Ow0KSW5kZXg6IFplbmQvemVuZF9sYW5ndWFnZV9zY2FubmVyLmgNCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvcmVwb3NpdG9yeS9aZW5k L3plbmRfbGFuZ3VhZ2Vfc2Nhbm5lci5oLHYNCnJldHJpZXZpbmcgcmV2aXNp b24gMS4xMC40LjENCmRpZmYgLXUgLXIxLjEwLjQuMSB6ZW5kX2xhbmd1YWdl X3NjYW5uZXIuaA0KLS0tIFplbmQvemVuZF9sYW5ndWFnZV9zY2FubmVyLmgJ MzEgRGVjIDIwMDIgMTY6MjM6MDMgLTAwMDAJMS4xMC40LjENCisrKyBaZW5k L3plbmRfbGFuZ3VhZ2Vfc2Nhbm5lci5oCTIgTWF5IDIwMDMgMTM6MDQ6MTgg LTAwMDANCkBAIC0yNCw3ICsyNCw3IEBADQogdHlwZWRlZiBzdHJ1Y3QgX3pl bmRfbGV4X3N0YXRlIHsNCiAJWVlfQlVGRkVSX1NUQVRFIGJ1ZmZlcl9zdGF0 ZTsNCiAJaW50IHN0YXRlOw0KLQlGSUxFICppbjsNCisJemVuZF9maWxlX2hh bmRsZSAqaW47DQogCXVpbnQgbGluZW5vOw0KIAljaGFyICpmaWxlbmFtZTsN CiAjaWZkZWYgWkVORF9NVUxUSUJZVEUNCkluZGV4OiBaZW5kL3plbmRfbGFu Z3VhZ2Vfc2Nhbm5lci5sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg ZmlsZTogL3JlcG9zaXRvcnkvWmVuZC96ZW5kX2xhbmd1YWdlX3NjYW5uZXIu bCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTQuMi4xMQ0KZGlmZiAtdSAt cjEuNTQuMi4xMSB6ZW5kX2xhbmd1YWdlX3NjYW5uZXIubA0KLS0tIFplbmQv emVuZF9sYW5ndWFnZV9zY2FubmVyLmwJMjUgQXByIDIwMDMgMTA6MTQ6Mjgg LTAwMDAJMS41NC4yLjExDQorKysgWmVuZC96ZW5kX2xhbmd1YWdlX3NjYW5u ZXIubAkyIE1heSAyMDAzIDEzOjA0OjE4IC0wMDAwDQpAQCAtMTkwLDYgKzE5 MCw5IEBADQogWkVORF9BUEkgdm9pZCB6ZW5kX2ZpbGVfaGFuZGxlX2R0b3Io emVuZF9maWxlX2hhbmRsZSAqZmgpDQogew0KIAlzd2l0Y2ggKGZoLT50eXBl KSB7DQorCQljYXNlIFpFTkRfSEFORExFX0ZEOg0KKwkJCWNsb3NlKGZoLT5o YW5kbGUuZmQpOw0KKwkJCWJyZWFrOw0KIAkJY2FzZSBaRU5EX0hBTkRMRV9G UDoNCiAJCQlmY2xvc2UoZmgtPmhhbmRsZS5mcCk7DQogCQkJYnJlYWs7DQpA QCAtMjAxLDkgKzIwNCwxMSBAQA0KIAl9DQogCWlmIChmaC0+b3BlbmVkX3Bh dGgpIHsNCiAJCWVmcmVlKGZoLT5vcGVuZWRfcGF0aCk7DQorCQlmaC0+b3Bl bmVkX3BhdGggPSBOVUxMOw0KIAl9DQogCWlmIChmaC0+ZnJlZV9maWxlbmFt ZSAmJiBmaC0+ZmlsZW5hbWUpIHsNCiAJCWVmcmVlKGZoLT5maWxlbmFtZSk7 DQorCQlmaC0+ZmlsZW5hbWUgPSBOVUxMOw0KIAl9DQogfQ0KIA0KQEAgLTIx Nyw2ICsyMjIsOSBAQA0KIAkJY2FzZSBaRU5EX0hBTkRMRV9GUDoNCiAJCQly ZXR1cm4gZmgxLT5oYW5kbGUuZnA9PWZoMi0+aGFuZGxlLmZwOw0KIAkJCWJy ZWFrOw0KKwkJY2FzZSBaRU5EX0hBTkRMRV9GRDoNCisJCQlyZXR1cm4gZmgx LT5oYW5kbGUuZmQ9PWZoMi0+aGFuZGxlLmZkOw0KKwkJCWJyZWFrOw0KIAl9 DQogCXJldHVybiAwOw0KIH0NCkBAIC0yMzEsMjggKzIzOSwyNyBAQA0KIFpF TkRfQVBJIGludCBvcGVuX2ZpbGVfZm9yX3NjYW5uaW5nKHplbmRfZmlsZV9o YW5kbGUgKmZpbGVfaGFuZGxlIFRTUk1MU19EQykNCiB7DQogCWNoYXIgKmZp bGVfcGF0aD1OVUxMOw0KKwlpbnQgZG9fYWRkID0gMTsNCiANCiAJc3dpdGNo IChmaWxlX2hhbmRsZS0+dHlwZSkgew0KIAkJY2FzZSBaRU5EX0hBTkRMRV9G SUxFTkFNRToNCi0JCQlmaWxlX2hhbmRsZS0+aGFuZGxlLmZwID0gemVuZF9m b3BlbihmaWxlX2hhbmRsZS0+ZmlsZW5hbWUsICZmaWxlX2hhbmRsZS0+b3Bl bmVkX3BhdGgpOw0KLQkJCWJyZWFrOw0KLQkJY2FzZSBaRU5EX0hBTkRMRV9G RDoNCi0JCQlmaWxlX2hhbmRsZS0+aGFuZGxlLmZwID0gZmRvcGVuKGZpbGVf aGFuZGxlLT5oYW5kbGUuZmQsICJyIik7DQotCQkJYnJlYWs7DQotCQljYXNl IFpFTkRfSEFORExFX0ZQOg0KLQkJCWZpbGVfaGFuZGxlLT5oYW5kbGUuZnAg PSBmaWxlX2hhbmRsZS0+aGFuZGxlLmZwOw0KKwkJCWlmICh6ZW5kX29wZW4o ZmlsZV9oYW5kbGUtPmZpbGVuYW1lLCBmaWxlX2hhbmRsZSkgPT0gRkFJTFVS RSkNCisJCQkJcmV0dXJuIEZBSUxVUkU7DQogCQkJYnJlYWs7DQogCX0NCi0J aWYgKCFmaWxlX2hhbmRsZS0+aGFuZGxlLmZwKSB7DQotCQlyZXR1cm4gRkFJ TFVSRTsNCi0JfQ0KKwlmaWxlX2hhbmRsZS0+aXNfdHR5ID0gWkVORF9UVFlf VU5LTk9XTjsNCiANCi0JZmlsZV9oYW5kbGUtPnR5cGUgPSBaRU5EX0hBTkRM RV9GUDsJDQotCWlmIChmaWxlX2hhbmRsZS0+aGFuZGxlLmZwICE9IHN0ZGlu KSB7DQorCWlmICghWkVORF9JU19WQUxJRF9GSUxFX0hBTkRMRShmaWxlX2hh bmRsZSkpDQorCQkJcmV0dXJuIEZBSUxVUkU7DQorCQ0KKwlpZiAoZmlsZV9o YW5kbGUtPnR5cGUgPT0gWkVORF9IQU5ETEVfRlAgJiYgZmlsZV9oYW5kbGUt PmhhbmRsZS5mcCA9PSBzdGRpbikNCisJCWRvX2FkZCA9IDA7DQorCQ0KKwlp ZiAoZG9fYWRkKSB7DQogCQl6ZW5kX2xsaXN0X2FkZF9lbGVtZW50KCZDRyhv cGVuX2ZpbGVzKSwgZmlsZV9oYW5kbGUpOw0KIAl9DQogCS8qIFJlc2V0IHRo ZSBzY2FubmVyIGZvciBzY2FubmluZyB0aGUgbmV3IGZpbGUgKi8NCi0JU0NO Ryh5eV9pbikgPSBmaWxlX2hhbmRsZS0+aGFuZGxlLmZwOw0KKwlTQ05HKHl5 X2luKSA9IGZpbGVfaGFuZGxlOw0KICNpZmRlZiBaRU5EX01VTFRJQllURQ0K IAlpZiAoemVuZF9yZWFkX2ZpbGUoVFNSTUxTX0MpICE9IDApIHsNCiAJCXJl dHVybiBGQUlMVVJFOw0KQEAgLTM5Nyw5ICs0MDQsOCBAQA0KIAlmaWxlX2hh bmRsZS50eXBlID0gWkVORF9IQU5ETEVfRklMRU5BTUU7DQogCWZpbGVfaGFu ZGxlLm9wZW5lZF9wYXRoID0gTlVMTDsNCiANCi0NCiAJcmV0dmFsID0gemVu ZF9jb21waWxlX2ZpbGUoJmZpbGVfaGFuZGxlLCB0eXBlIFRTUk1MU19DQyk7 DQotCWlmIChyZXR2YWwgJiYgZmlsZV9oYW5kbGUuaGFuZGxlLmZwKSB7DQor CWlmIChyZXR2YWwgJiYgWkVORF9JU19WQUxJRF9GSUxFX0hBTkRMRSgmZmls ZV9oYW5kbGUpKSB7DQogCQlpbnQgZHVtbXkgPSAxOw0KIAkNCiAJCWlmICgh ZmlsZV9oYW5kbGUub3BlbmVkX3BhdGgpIHsNCkluZGV4OiBaZW5kL3plbmRf Y29tcGlsZS5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTog L3JlcG9zaXRvcnkvWmVuZC96ZW5kX2NvbXBpbGUuaCx2DQpyZXRyaWV2aW5n IHJldmlzaW9uIDEuMTQ0LjQuMQ0KZGlmZiAtdSAtcjEuMTQ0LjQuMSB6ZW5k X2NvbXBpbGUuaA0KLS0tIFplbmQvemVuZF9jb21waWxlLmgJMzEgRGVjIDIw MDIgMTY6MjI6NTggLTAwMDAJMS4xNDQuNC4xDQorKysgWmVuZC96ZW5kX2Nv bXBpbGUuaAkyIE1heSAyMDAzIDEzOjA0OjE4IC0wMDAwDQpAQCAtMTczLDkg KzE3MywxMCBAQA0KIAkJRklMRSAqZnA7DQogCX0gaGFuZGxlOw0KIAl6ZW5k X2Jvb2wgZnJlZV9maWxlbmFtZTsNCisJZW51bSB7IFpFTkRfVFRZX05PID0g MCwgWkVORF9UVFlfWUVTID0gMSwgIFpFTkRfVFRZX1VOS05PV059IGlzX3R0 eTsNCiB9IHplbmRfZmlsZV9oYW5kbGU7DQogDQotDQorI2RlZmluZSBaRU5E X0lTX1ZBTElEX0ZJTEVfSEFORExFKGhuKSAgICgoKGhuKS0+dHlwZSA9PSBa RU5EX0hBTkRMRV9GRCAmJiAoaG4pLT5oYW5kbGUuZmQgPj0gMCkgfHwgKCho biktPnR5cGUgPT0gWkVORF9IQU5ETEVfRlAgJiYgKGhuKS0+aGFuZGxlLmZw ICE9IE5VTEwpKQ0KIA0KICNkZWZpbmUgSVNfQ09OU1QJKDE8PDApDQogI2Rl ZmluZSBJU19UTVBfVkFSCSgxPDwxKQ0K --662784-1692711293-1051881059=:358--