Re: Added checks for alloc return value in several place.
Mikhail Karpov <[email protected]> Sat, 25 Jul 2026 12:53:46 +0700
| Newsgroups | gmane.os.hurd.bugs |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------sZiUZ1CmC3fOTmf8puv1Fmbs Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello, I've corrected the parts you pointed out. On Sat, 25 Jul 2026 02:30:07 Samuel Thibault wrote: > I'd rather return errno rather than hardcoding ENOMEM whenever possible, > in case malloc may have other issues, better report them precisely. > > (but take care that an intermediate function call may overwrite errno so > in some case you need to save it). Are there any recommendations for when to return errno instead of ENOMEM? If the function is static and only checks for an error, then I don't think there's any point in changing ENOMEM to errno. Am I correct in assuming this primarily applies to library callbacks? I can also check all other malloc, calloc, and realloc and return errno there if necessary. I'm not worried about the amount of work involved; I just need to know what exactly I need to do. :) Thanks, -- Mikhail Karpov --------------sZiUZ1CmC3fOTmf8puv1Fmbs Content-Type: text/x-patch; charset=UTF-8; name="0001-Added-checks-for-alloc-return-value-in-several-place.patch" Content-Disposition: attachment; filename*0="0001-Added-checks-for-alloc-return-value-in-several-place.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1OTczZjY5YWZjYmI0ODE0NmQyOGEyZTdhODAzMzg2NjllMjJhZGZlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWtoYWlsIEthcnBvdiA8a2FycG92Lm1peGFpbDI0 QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAyNSBKdWwgMjAyNiAxMjowMTo1OCArMDcwMApTdWJq ZWN0OiBbUEFUQ0hdIEFkZGVkIGNoZWNrcyBmb3IgYWxsb2MgcmV0dXJuIHZhbHVlIGluIHNl dmVyYWwgcGxhY2UKCi0tLQogZGVmcGFnZXIvYmFja2luZy5jICAgICAgICAgICAgICAgICB8 ICA1ICsrKysKIGRlZnBhZ2VyL2RlZnBhZ2VyLmMgICAgICAgICAgICAgICAgfCAyMyArKysr KysrKysrKystLS0tCiBldGgtbXVsdGlwbGV4ZXIvbmV0ZnNfaW1wbC5jICAgICAgIHwgIDkg KysrKysrCiBleHQyZnMvZGlyLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMjcgKysrKysr KysrKysrKysrKystCiBmYXRmcy9mYXQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMg KysKIGZhdGZzL3BhZ2VyLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMyArKwogbGliYnBm L2JwZl9pbXBsLmMgICAgICAgICAgICAgICAgICB8ICA0ICsrKwogbGliZGlza2ZzL2ZpbGUt Y2hnLmMgICAgICAgICAgICAgICB8ICA3ICsrKysrCiBsaWJwYWdlci9sb2NrLW9iamVjdC5j ICAgICAgICAgICAgIHwgIDEgKwogbGlicGFnZXIvb2JqZWN0LWluaXQuYyAgICAgICAgICAg ICB8ICA3ICsrKysrCiBsaWJwYWdlci9wYWdlci1hdHRyLmMgICAgICAgICAgICAgIHwgIDEg KwogbGlicHMvcHJvY2xpc3QuYyAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0KIGxpYnBz L3Byb2NzdGF0LmMgICAgICAgICAgICAgICAgICAgfCAgNiArKysrCiBsaWJzdG9yZS9yZW1h cC5jICAgICAgICAgICAgICAgICAgIHwgIDkgKysrKystCiBsd2lwL2x3aXAtdXRpbC5jICAg ICAgICAgICAgICAgICAgIHwgIDkgKysrKystCiBsd2lwL3BmaW5ldC1vcHMuYyAgICAgICAg ICAgICAgICAgIHwgIDggKysrKysrCiBsd2lwL3BvcnQvbmV0aWYvaWZjb21tb24uYyAgICAg ICAgIHwgIDMgKysKIGx3aXAvc29ja2V0LW9wcy5jICAgICAgICAgICAgICAgICAgfCAgMyAr KwogbWFjaC1kZWZwYWdlci9kZWZhdWx0X3BhZ2VyLmMgICAgICB8IDQ0ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogbmZzL29wcy5jICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA3ICsrKystCiBuZnNkL2NhY2hlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDYg KysrKwogbmZzZC9mc3lzLmMgICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysr KysrLQogbmZzZC9sb29wLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsrCiBuZnNk L3hkci5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysKIHBmaW5ldC9nbHVlLWlu Y2x1ZGUvbGludXgva2VybmVsLmggfCAgMyArKwogcGZpbmV0L3NvY2tldC1vcHMuYyAgICAg ICAgICAgICAgICB8ICAzICsrCiBwcm9jL21ndC5jICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDEgKwogcHJvY2ZzL2RpcmNhdC5jICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysr KysrKy0KIHN0YXJ0dXAvc3RhcnR1cC5jICAgICAgICAgICAgICAgICAgfCAgOSArKysrKysK IHRlcm0vbWFpbi5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArKwogdGVybS9tdW5n ZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAyICsrCiB0ZXJtL3VzZXJzLmMgICAgICAg ICAgICAgICAgICAgICAgIHwgMTIgKysrKysrKysKIHRyYW5zL21hZ2ljLmMgICAgICAgICAg ICAgICAgICAgICAgfCAgMyArLQogdHJhbnMvbmV3LWZpZm8uYyAgICAgICAgICAgICAgICAg ICB8ICAxICsKIHRyYW5zL3JlbWFwLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMyArKwog dXRpbHMvbXNncG9ydC5jICAgICAgICAgICAgICAgICAgICB8IDExICsrKysrKysrCiB1dGls cy9wcy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysKIHV0aWxzL3NldHRyYW5z LmMgICAgICAgICAgICAgICAgICAgfCAgMiArLQogMzggZmlsZXMgY2hhbmdlZCwgMjcwIGlu c2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RlZnBhZ2VyL2Jh Y2tpbmcuYyBiL2RlZnBhZ2VyL2JhY2tpbmcuYwppbmRleCA1NmZlNjU1MS4uZDI2MWRjYzkg MTAwNjQ0Ci0tLSBhL2RlZnBhZ2VyL2JhY2tpbmcuYworKysgYi9kZWZwYWdlci9iYWNraW5n LmMKQEAgLTUwLDYgKzUwLDkgQEAgaW5pdF9iYWNraW5nIChjaGFyICpuYW1lKQogICAKICAg Ym1hcF9sZW4gPSBiYWNraW5nX3N0b3JlLT5zaXplIC8gdm1fcGFnZV9zaXplIC8gTkJCWTsK ICAgYm1hcCA9IG1hbGxvYyAoYm1hcF9sZW4pOworICBpZiAoIWJtYXApCisgICAgcmV0dXJu IGVycm5vOworCiAgIGZvciAoaSA9IDA7IGkgPCBibWFwX2xlbjsgaSsrKQogICAgIGJtYXBb aV0gPSAweGZmOwogICBibWFwX3JvdG9yID0gYm1hcDsKQEAgLTYwLDYgKzYzLDggQEAgaW5p dF9iYWNraW5nIChjaGFyICpuYW1lKQogICAgICBzdXJlIHdlIGRvbid0IHRyb21wIG9uIHRo ZSBtaXNmZWF0dXJlIGluIExpbnV4IG9mIHVzaW5nIHRoZSBmaXJzdAogICAgICBwYWdlIGZv ciBwZXJtYW5lbnQgZGF0YS4gKi8KICAgKmJtYXBfcm90b3IgfD0gMTsKKworICByZXR1cm4g MDsKIH0KIAogaW50CmRpZmYgLS1naXQgYS9kZWZwYWdlci9kZWZwYWdlci5jIGIvZGVmcGFn ZXIvZGVmcGFnZXIuYwppbmRleCAzYjNjZGExZS4uNDUwOGI3NWYgMTAwNjQ0Ci0tLSBhL2Rl ZnBhZ2VyL2RlZnBhZ2VyLmMKKysrIGIvZGVmcGFnZXIvZGVmcGFnZXIuYwpAQCAtMzMsNyAr MzMsNyBAQCBzdHJ1Y3QgdXNlcl9wYWdlcl9pbmZvCiAKIC8qIEV4cGFuZCB0aGUgUC0+bWFw IGFzIG5lY2Vzc2FyeSB0byBoYW5kbGUgYW4gaW5jb21pbmcgcmVxdWVzdCBvZiB0aGUKICAg IHBhZ2UgYXQgQUREUi4gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZAorc3RhdGljIGlubGluZSBl cnJvcl90CiBleHBhbmRfbWFwIChzdHJ1Y3QgdXNlcl9wYWdlcl9pbmZvICpwLCB2bV9vZmZz ZXRfdCBhZGRyKQogewogICAvKiBTZWUgaWYgdGhpcyBpcyBiZXlvbmQgdGhlIGN1cnJlbnQg ZXh0ZW50ICovCkBAIC00NCwxMSArNDQsMTYgQEAgZXhwYW5kX21hcCAoc3RydWN0IHVzZXJf cGFnZXJfaW5mbyAqcCwgdm1fb2Zmc2V0X3QgYWRkcikKIAogICAgICAgbmV3c2l6ZSA9IHBh Z2UgKyB2bV9wYWdlX3NpemU7CiAgICAgICBuZXdtYXAgPSByZWFsbG9jIChwYWdlci0+bWFw LCBzaXplIC8gdm1fcGFnZV9zaXplICogc2l6ZW9mIChvZmZfdCkpOworICAgICAgaWYgKCFu ZXdtYXApCisJcmV0dXJuIEVOT01FTTsKIAotICAgICAgbWVtc2V0IChwYWdlci0+bWFwICsg cGFnZXItPnNpemUgLyB2bV9wYWdlX3NpemUgKiBzaXplb2Yob2ZmX3QpLCAwLCAobmV3c2l6 ZSAtIHBhZ2VyLT5zaXplKSAvIHZtX3BhZ2Vfc2l6ZSAqIHNpemVvZihvZmZfdCkpOworICAg ICAgbWVtc2V0IChwYWdlci0+bWFwICsgcGFnZXItPnNpemUgLyB2bV9wYWdlX3NpemUgKiBz aXplb2Yob2ZmX3QpLAorCSAgICAgIDAsIChuZXdzaXplIC0gcGFnZXItPnNpemUpIC8gdm1f cGFnZV9zaXplICogc2l6ZW9mKG9mZl90KSk7CiAgICAgICBwYWdlci0+c2l6ZSA9IG5ld3Np emU7CiAgICAgICBwYWdlci0+bWFwID0gbmV3bWFwOwogICAgIH0KKworICByZXR1cm4gMDsK IH0KIAogZXJyb3JfdApAQCAtNjMsMTAgKzY4LDE2IEBAIHBhZ2VyX3JlYWRfcGFnZSAoc3Ry dWN0IHVzZXJfcGFnZXJfaW5mbyAqcGFnZXIsCiAgIC8qIFdlIG5ldmVyIHJlcXVlc3Qgd3Jp dGUgbG9ja3MuICovCiAgICp3cml0ZV9sb2NrID0gMDsKIAotICBleHBhbmRfbWFwIChwYWdl ciwgcGFnZSk7CisgIGVycm9yX3QgZXJyID0gZXhwYW5kX21hcCAocGFnZXIsIHBhZ2UpOwor ICBpZiAoZXJyKQorICAgIHJldHVybiBlcnI7CiAKICAgaWYgKCFwYWdlci0+bWFwW3Bmbl0p Ci0gICAgdm1fYWxsb2NhdGUgKG1hY2hfdGFza19zZWxmICgpLCBidWYsIHZtX3BhZ2Vfc2l6 ZSwgMSk7CisgICAgeworICAgICAgZXJyID0gdm1fYWxsb2NhdGUgKG1hY2hfdGFza19zZWxm ICgpLCBidWYsIHZtX3BhZ2Vfc2l6ZSwgMSk7CisgICAgICBpZiAoZXJyKQorCXJldHVybiBl cnI7CisgICAgfQogICBlbHNlCiAgICAgewogICAgICAgc3RvcmVfcmVhZCAoYmFja2luZ19z dG9yZSwgcGFnZXItPm1hcFtwZm5dLCB2bV9wYWdlX3NpemUsIApAQCAtODksNyArMTAwLDkg QEAgcGFnZXJfd3JpdGVfcGFnZSAoc3RydWN0IHVzZXJfcGFnZXJfaW5mbyAqcGFnZXIsCiAg IGludCBwZm4gPSBwYWdlIC8gdm1fcGFnZV9zaXplOwogICBzaXplX3QgbndyaXR0ZW47CiAg IAotICBleHBhbmRfbWFwIChwYWdlciwgcGFnZSk7CisgIGVycm9yX3QgZXJyID0gZXhwYW5k X21hcCAocGFnZXIsIHBhZ2UpOworICBpZiAoZXJyKQorICAgIHJldHVybiBlcnI7CiAgIAog ICBpZiAoIXBhZ2VyLT5tYXBbcGZuXSkKICAgICBwYWdlci0+bWFwW3Bmbl0gPSBhbGxvY2F0 ZV9iYWNraW5nX3BhZ2UgKCk7CmRpZmYgLS1naXQgYS9ldGgtbXVsdGlwbGV4ZXIvbmV0ZnNf aW1wbC5jIGIvZXRoLW11bHRpcGxleGVyL25ldGZzX2ltcGwuYwppbmRleCA4M2EyMzEzMi4u OTdlYmViNjkgMTAwNjQ0Ci0tLSBhL2V0aC1tdWx0aXBsZXhlci9uZXRmc19pbXBsLmMKKysr IGIvZXRoLW11bHRpcGxleGVyL25ldGZzX2ltcGwuYwpAQCAtODYsNiArODYsOSBAQCBsb29r dXAgKGNvbnN0IGNoYXIgKm5hbWUpCiAgIHN0cnVjdCBsbm9kZSAqbG4gPSAoc3RydWN0IGxu b2RlICopIGxvb2t1cF9kZXZfYnlfbmFtZSAobmFtZSk7CiAKICAgY2hhciAqY29waWVkX25h bWUgPSBtYWxsb2MgKHN0cmxlbiAobmFtZSkgKyAxKTsKKyAgaWYgKCFjb3BpZWRfbmFtZSkK KyAgICByZXR1cm4gTlVMTDsKKwogICBzdHJjcHkgKGNvcGllZF9uYW1lLCBuYW1lKTsKICAg aWYgKGxuKQogICAgIHsKQEAgLTMwNSw2ICszMDgsMTIgQEAgZXJyb3JfdCBuZXRmc19hdHRl bXB0X2xvb2t1cCAoc3RydWN0IGlvdXNlciAqdXNlciwgc3RydWN0IG5vZGUgKmRpciwKICAg ICB9CiAKICAgKm5vZGUgPSBsb29rdXAgKG5hbWUpOworICBpZiAoISpub2RlKQorICAgIHsK KyAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrICgmZGlyLT5sb2NrKTsKKyAgICAgIHJldHVy biBlcnJubzsKKyAgICB9CisKICAgcHRocmVhZF9tdXRleF9sb2NrICgmKCpub2RlKS0+bG9j ayk7CiAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrICgmZGlyLT5sb2NrKTsKICAgcmV0dXJuIDA7 CmRpZmYgLS1naXQgYS9leHQyZnMvZGlyLmMgYi9leHQyZnMvZGlyLmMKaW5kZXggNTVmMjY1 NzkuLjc0YTllYTI5IDEwMDY0NAotLS0gYS9leHQyZnMvZGlyLmMKKysrIGIvZXh0MmZzL2Rp ci5jCkBAIC00OTMsNiArNDkzLDEyIEBAIGRpcnNjYW5ibG9jayAodm1fYWRkcmVzc190IGJs b2NrYWRkciwgc3RydWN0IG5vZGUgKmRwLCBpbnQgaWR4LAogCXsKIAkgIGRpc2tmc19ub2Rl X2Rpc2tub2RlIChkcCktPmRpcmVudHMgPQogCSAgICBtYWxsb2MgKChkcC0+ZG5fc3RhdC5z dF9zaXplIC8gRElSQkxLU0laKSAqIHNpemVvZiAoaW50KSk7CisJICBpZiAoIWRpc2tmc19u b2RlX2Rpc2tub2RlIChkcCktPmRpcmVudHMpCisJICAgIHsKKwkgICAgICBleHQyX3dhcm5p bmcgKCJGYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBkaXJlbnRzIik7CisJICAgICAg cmV0dXJuIEVOT0VOVDsKKwkgICAgfQorCiAJICBmb3IgKGkgPSAwOyBpIDwgZHAtPmRuX3N0 YXQuc3Rfc2l6ZS9ESVJCTEtTSVo7IGkrKykKIAkgICAgZGlza2ZzX25vZGVfZGlza25vZGUg KGRwKS0+ZGlyZW50c1tpXSA9IC0xOwogCX0KQEAgLTY4Nyw5ICs2OTMsMTYgQEAgZGlza2Zz X2RpcmVudGVyX2hhcmQgKHN0cnVjdCBub2RlICpkcCwgY29uc3QgY2hhciAqbmFtZSwgc3Ry dWN0IG5vZGUgKm5wLAogCSBhbnl0aGluZyBhdCBhbGwuICovCiAgICAgICBpZiAoZGlza2Zz X25vZGVfZGlza25vZGUgKGRwKS0+ZGlyZW50cykKIAl7Ci0JICBkaXNrZnNfbm9kZV9kaXNr bm9kZSAoZHApLT5kaXJlbnRzID0KKwkgIGludCAqbmV3X2RpcmVudHMgPQogCSAgICByZWFs bG9jIChkaXNrZnNfbm9kZV9kaXNrbm9kZSAoZHApLT5kaXJlbnRzLAogCQkgICAgIChkcC0+ ZG5fc3RhdC5zdF9zaXplIC8gRElSQkxLU0laICogc2l6ZW9mIChpbnQpKSk7CisJICBpZiAo IW5ld19kaXJlbnRzKQorCSAgICB7CisJICAgICAgZXh0Ml93YXJuaW5nICgiRmFpbGVkIHRv IHJlYWxsb2NhdGUgbWVtb3J5IGZvciBuZXdfZGlyZW50cyIpOworCSAgICAgIHJldHVybiBF Tk9FTlQ7CisJICAgIH0KKworCSAgZGlza2ZzX25vZGVfZGlza25vZGUgKGRwKS0+ZGlyZW50 cyA9IG5ld19kaXJlbnRzOwogCSAgZm9yIChpID0gb2xkc2l6ZSAvIERJUkJMS1NJWjsKIAkg ICAgICAgaSA8IGRwLT5kbl9zdGF0LnN0X3NpemUgLyBESVJCTEtTSVo7CiAJICAgICAgIGkr KykKQEAgLTcwMSw2ICs3MTQsMTIgQEAgZGlza2ZzX2RpcmVudGVyX2hhcmQgKHN0cnVjdCBu b2RlICpkcCwgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG5vZGUgKm5wLAogCXsKIAkgIGRp c2tmc19ub2RlX2Rpc2tub2RlIChkcCktPmRpcmVudHMgPQogCSAgICBtYWxsb2MgKGRwLT5k bl9zdGF0LnN0X3NpemUgLyBESVJCTEtTSVogKiBzaXplb2YgKGludCkpOworCSAgaWYgKCFk aXNrZnNfbm9kZV9kaXNrbm9kZSAoZHApLT5kaXJlbnRzKQorCSAgICB7CisJICAgICAgZXh0 Ml93YXJuaW5nICgiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgZGlyZW50cyIpOwor CSAgICAgIHJldHVybiBFTk9FTlQ7CisJICAgIH0KKwogCSAgZm9yIChpID0gMDsgaSA8IGRw LT5kbl9zdGF0LnN0X3NpemUgLyBESVJCTEtTSVo7IGkrKykKIAkgICAgZGlza2ZzX25vZGVf ZGlza25vZGUgKGRwKS0+ZGlyZW50c1tpXSA9IC0xOwogCSAgZGlza2ZzX25vZGVfZGlza25v ZGUgKGRwKS0+ZGlyZW50c1tkcy0+aWR4XSA9IDE7CkBAIC05MDcsNiArOTI2LDEyIEBAIGRp c2tmc19nZXRfZGlyZWN0cyAoc3RydWN0IG5vZGUgKmRwLAogICBpZiAoIWRpc2tmc19ub2Rl X2Rpc2tub2RlIChkcCktPmRpcmVudHMpCiAgICAgewogICAgICAgZGlza2ZzX25vZGVfZGlz a25vZGUgKGRwKS0+ZGlyZW50cyA9IG1hbGxvYyAobmJsa3MgKiBzaXplb2YgKGludCkpOwor ICAgICAgaWYgKCFkaXNrZnNfbm9kZV9kaXNrbm9kZSAoZHApLT5kaXJlbnRzKQorCXsKKwkg IGV4dDJfd2FybmluZyAoIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGRpcmVudHMi KTsKKwkgIHJldHVybiBFTk9FTlQ7CisJfQorCiAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmJs a3M7IGkrKykKIAlkaXNrZnNfbm9kZV9kaXNrbm9kZSAoZHApLT5kaXJlbnRzW2ldID0gLTE7 CiAgICAgfQpkaWZmIC0tZ2l0IGEvZmF0ZnMvZmF0LmMgYi9mYXRmcy9mYXQuYwppbmRleCBl NzY1Mzc2ZC4uNGFmMzIxYzYgMTAwNjQ0Ci0tLSBhL2ZhdGZzL2ZhdC5jCisrKyBiL2ZhdGZz L2ZhdC5jCkBAIC03Miw2ICs3Miw5IEBAIGZhdF9yZWFkX3NibG9jayAodm9pZCkKICAgc2l6 ZV90IHJlYWQgPSBzaXplb2Yoc3RydWN0IGJvb3Rfc2VjdG9yKTsKIAogICBzYmxvY2sgPSBt YWxsb2MgKHJlYWQpOworICBpZiAoIXNibG9jaykKKyAgICBlcnJvciAoMSwgRU5PTUVNLCAi RmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3Igc3VwZXJibG9jay4iKTsKKwogICBlcnIg PSBzdG9yZV9yZWFkIChzdG9yZSwgMCwgcmVhZCwgKHZvaWQgKiopICZzYmxvY2ssICZyZWFk KTsKICAgaWYgKGVycikKICAgICBlcnJvciAoMSwgZXJyLCAiQ291bGQgbm90IHJlYWQgc3Vw ZXJibG9jayIpOwpkaWZmIC0tZ2l0IGEvZmF0ZnMvcGFnZXIuYyBiL2ZhdGZzL3BhZ2VyLmMK aW5kZXggZTIzMDJjZWMuLmM1NmY5ZjU2IDEwMDY0NAotLS0gYS9mYXRmcy9wYWdlci5jCisr KyBiL2ZhdGZzL3BhZ2VyLmMKQEAgLTc3Niw2ICs3NzYsOSBAQCBjcmVhdGVfZmF0X3BhZ2Vy ICh2b2lkKQogCiAgIC8qIFRoZSBkaXNrIHBhZ2VyLiAgKi8KICAgc3RydWN0IHVzZXJfcGFn ZXJfaW5mbyAqdXBpID0gbWFsbG9jIChzaXplb2YgKHN0cnVjdCB1c2VyX3BhZ2VyX2luZm8p KTsKKyAgaWYgKCF1cGkpCisgICAgZXJyb3IgKDIsIEVOT01FTSwgIkZhaWxlZCB0byBhbGxv Y2F0ZSBtZW1vcnkgZm9yIHVzZXJfcGFnZXJfaW5mby4iKTsKKwogICB1cGktPnR5cGUgPSBG QVQ7CiAgIGRpc2tfcGFnZXJfYnVja2V0ID0gcG9ydHNfY3JlYXRlX2J1Y2tldCAoKTsKICAg ZGlza2ZzX3N0YXJ0X2Rpc2tfcGFnZXIgKHVwaSwgZGlza19wYWdlcl9idWNrZXQsIE1BWV9D QUNIRSwgMCwKZGlmZiAtLWdpdCBhL2xpYmJwZi9icGZfaW1wbC5jIGIvbGliYnBmL2JwZl9p bXBsLmMKaW5kZXggYzc4MTc2YzIuLjM4ZDcxYWJhIDEwMDY0NAotLS0gYS9saWJicGYvYnBm X2ltcGwuYworKysgYi9saWJicGYvYnBmX2ltcGwuYwpAQCAtNjEyLDYgKzYxMiw4IEBAIG5l dF9zZXRfZmlsdGVyKGlmX2ZpbHRlcl9saXN0X3QgKmlmcCwgbWFjaF9wb3J0X3QgcmN2X3Bv cnQsIGludCBwcmlvcml0eSwKIAkJICogYSBub3JtYWwgcGFja2V0IGZpbHRlciBzdHJ1Y3R1 cmUuCiAJCSAqLwogCQlteV9pbmZwID0gKG5ldF9yY3ZfcG9ydF90KSBjYWxsb2MoMSwgc2l6 ZW9mKHN0cnVjdCBuZXRfcmN2X3BvcnQpKTsKKwkJaWYgKCFteV9pbmZwKQorCQkJcmV0dXJu IChEX05PX01FTU9SWSk7CiAJCW15X2luZnAtPnJjdl9wb3J0ID0gcmN2X3BvcnQ7CiAJCWlz X25ld19pbmZwID0gVFJVRTsKIAl9IGVsc2UgewpAQCAtNjIyLDYgKzYyNCw4IEBAIG5ldF9z ZXRfZmlsdGVyKGlmX2ZpbHRlcl9saXN0X3QgKmlmcCwgbWFjaF9wb3J0X3QgcmN2X3BvcnQs IGludCBwcmlvcml0eSwKIAkJICovCiAJCW15X2luZnAgPSAwOwogCQloYXNoX2VudHAgPSAo bmV0X2hhc2hfZW50cnlfdCkgY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgbmV0X2hhc2hfZW50 cnkpKTsKKwkJaWYgKCFoYXNoX2VudHApCisJCQlyZXR1cm4gKERfTk9fTUVNT1JZKTsKIAkJ aXNfbmV3X2luZnAgPSBGQUxTRTsKIAl9CiAKZGlmZiAtLWdpdCBhL2xpYmRpc2tmcy9maWxl LWNoZy5jIGIvbGliZGlza2ZzL2ZpbGUtY2hnLmMKaW5kZXggMTgxNzBjMjUuLjQwZDFhNGVk IDEwMDY0NAotLS0gYS9saWJkaXNrZnMvZmlsZS1jaGcuYworKysgYi9saWJkaXNrZnMvZmls ZS1jaGcuYwpAQCAtNDMsNyArNDMsMTQgQEAgZGlza2ZzX1NfZmlsZV9ub3RpY2VfY2hhbmdl cyAoc3RydWN0IHByb3RpZCAqY3JlZCwgbWFjaF9wb3J0X3Qgbm90aWZ5KQogICAgICAgcHRo cmVhZF9tdXRleF91bmxvY2sgKCZucC0+bG9jayk7CiAgICAgICByZXR1cm4gZXJyOwogICAg IH0KKwogICByZXEgPSBtYWxsb2MgKHNpemVvZiAoc3RydWN0IG1vZHJlcSkpOworICBpZiAo IXJlcSkKKyAgICB7CisgICAgICBwdGhyZWFkX211dGV4X3VubG9jayAoJm5wLT5sb2NrKTsK KyAgICAgIHJldHVybiBFTk9NRU07CisgICAgfQorCiAgIHJlcS0+cG9ydCA9IG5vdGlmeTsK ICAgcmVxLT5uZXh0ID0gbnAtPmZpbGVtb2RfcmVxczsKICAgbnAtPmZpbGVtb2RfcmVxcyA9 IHJlcTsKZGlmZiAtLWdpdCBhL2xpYnBhZ2VyL2xvY2stb2JqZWN0LmMgYi9saWJwYWdlci9s b2NrLW9iamVjdC5jCmluZGV4IGQ4YTRjMWY4Li4wMTExNGVlMiAxMDA2NDQKLS0tIGEvbGli cGFnZXIvbG9jay1vYmplY3QuYworKysgYi9saWJwYWdlci9sb2NrLW9iamVjdC5jCkBAIC01 Miw2ICs1Miw3IEBAIF9wYWdlcl9sb2NrX29iamVjdCAoc3RydWN0IHBhZ2VyICpwLAogICAg ICAgaWYgKCFscikKIAl7CiAJICBsciA9IG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgbG9ja19y ZXF1ZXN0KSk7CisJICBhc3NlcnRfYmFja3RyYWNlIChscik7CiAJICBsci0+c3RhcnQgPSBv ZmZzZXQ7CiAJICBsci0+ZW5kID0gb2Zmc2V0ICsgc2l6ZTsKIAkgIGxyLT5wZW5kaW5nX3dy aXRlcyA9IDA7CmRpZmYgLS1naXQgYS9saWJwYWdlci9vYmplY3QtaW5pdC5jIGIvbGlicGFn ZXIvb2JqZWN0LWluaXQuYwppbmRleCA2MTlkMjhmMy4uODdiNTVmNDYgMTAwNjQ0Ci0tLSBh L2xpYnBhZ2VyL29iamVjdC1pbml0LmMKKysrIGIvbGlicGFnZXIvb2JqZWN0LWluaXQuYwpA QCAtNDMsNiArNDMsMTMgQEAgX3BhZ2VyX1NfbWVtb3J5X29iamVjdF9pbml0IChzdHJ1Y3Qg cGFnZXIgKnAsCiAgICAgewogI2lmZGVmIEtFUk5FTF9JTklUX1JBQ0UKICAgICAgIHN0cnVj dCBwZW5kaW5nX2luaXQgKmkgPSBtYWxsb2MgKHNpemVvZiAoc3RydWN0IHBlbmRpbmdfaW5p dCkpOworICAgICAgaWYgKCFpKQorCXsKKwkgIHByaW50ZiAoImZhaWxlZCB0byBhbGxvY2F0 ZSBtZW1vcnkgZm9yIHBlbmRpbmdfaW5pdCIpOworCSAgcHRocmVhZF9tdXRleF91bmxvY2sg KCZwLT5pbnRlcmxvY2spOworCSAgcmV0dXJuIEVOT01FTTsKKwl9CisKICAgICAgIHByaW50 ZiAoInBhZ2VyIG91dC1vZi1zZXF1ZW5jZSBpbml0XG4iKTsKICAgICAgIGktPmNvbnRyb2wg PSBjb250cm9sOwogICAgICAgaS0+bmFtZSA9IG5hbWU7CmRpZmYgLS1naXQgYS9saWJwYWdl ci9wYWdlci1hdHRyLmMgYi9saWJwYWdlci9wYWdlci1hdHRyLmMKaW5kZXggNDI4MGUyNmQu LjY2YzliNjFmIDEwMDY0NAotLS0gYS9saWJwYWdlci9wYWdlci1hdHRyLmMKKysrIGIvbGli cGFnZXIvcGFnZXItYXR0ci5jCkBAIC02NSw2ICs2NSw3IEBAIHBhZ2VyX2NoYW5nZV9hdHRy aWJ1dGVzIChzdHJ1Y3QgcGFnZXIgKnAsCiAgICAgICBpZiAoIWFyKQogCXsKIAkgIGFyID0g bWFsbG9jIChzaXplb2YgKHN0cnVjdCBhdHRyaWJ1dGVfcmVxdWVzdCkpOworCSAgYXNzZXJ0 X2JhY2t0cmFjZSAoYXIpOwogCSAgYXItPm1heV9jYWNoZSA9IG1heV9jYWNoZTsKIAkgIGFy LT5jb3B5X3N0cmF0ZWd5ID0gY29weV9zdHJhdGVneTsKIAkgIGFyLT5hdHRyc19wZW5kaW5n ID0gMTsKZGlmZiAtLWdpdCBhL2xpYnBzL3Byb2NsaXN0LmMgYi9saWJwcy9wcm9jbGlzdC5j CmluZGV4IGUxY2U0YzE2Li5iYmJlMDNhNSAxMDA2NDQKLS0tIGEvbGlicHMvcHJvY2xpc3Qu YworKysgYi9saWJwcy9wcm9jbGlzdC5jCkBAIC0xMjQsNyArMTI0LDExIEBAIHByb2Nfc3Rh dF9saXN0X2FkZF9waWRzIChzdHJ1Y3QgcHJvY19zdGF0X2xpc3QgKnBwLAogICAgICAgc3Ry dWN0IHByb2Nfc3RhdCAqKmVuZCA9IHBwLT5wcm9jX3N0YXRzICsgcHAtPm51bV9wcm9jczsK IAogICAgICAgaWYgKHByb2Nfc3RhdHMpCi0JKnByb2Nfc3RhdHMgPSBORVdWRUMgKHN0cnVj dCBwcm9jX3N0YXQgKiwgbnVtX3Byb2NzKTsKKwl7CisJICAqcHJvY19zdGF0cyA9IE5FV1ZF QyAoc3RydWN0IHByb2Nfc3RhdCAqLCBudW1fcHJvY3MpOworCSAgaWYgKCEqcHJvY19zdGF0 cykKKwkgICAgcmV0dXJuIEVOT01FTTsKKwl9CiAKICAgICAgIGZvciAoaSA9IDA7IGkgPCBu dW1fcHJvY3M7IGkrKykKIAl7CmRpZmYgLS1naXQgYS9saWJwcy9wcm9jc3RhdC5jIGIvbGli cHMvcHJvY3N0YXQuYwppbmRleCA0ZGU0MjE2ZC4uYTM0ZGE2MzAgMTAwNjQ0Ci0tLSBhL2xp YnBzL3Byb2NzdGF0LmMKKysrIGIvbGlicHMvcHJvY3N0YXQuYwpAQCAtMjA0LDYgKzIwNCwx MiBAQCBtZXJnZV9wcm9jaW5mbyAoc3RydWN0IHByb2Nfc3RhdCAqcHMsIHBzX2ZsYWdzX3Qg bmVlZCwgcHNfZmxhZ3NfdCBoYXZlKQogCSAgcHMtPnRocmVhZF93YWl0cyA9IG1hbGxvYyAo V0FJVFNfTUFMTE9DX1NJWkUpOwogCSAgcHMtPnRocmVhZF93YWl0c19sZW4gPSBXQUlUU19N QUxMT0NfU0laRTsKIAkgIHBzLT50aHJlYWRfd2FpdHNfdm1fYWxsb2NlZCA9IDA7CisJICBp ZiAoISBwcy0+dGhyZWFkX3dhaXRzKQorCSAgICB7CisJICAgICAgaWYgKCEgKGhhdmUgJiBQ U1RBVF9QUk9DSU5GTykpCisJCWZyZWUgKG5ld19waSk7CisJICAgICAgcmV0dXJuIEVOT01F TTsKKwkgICAgfQogCX0KICAgICAgIG5ld193YWl0cyA9IHBzLT50aHJlYWRfd2FpdHM7CiAg ICAgICBuZXdfd2FpdHNfbGVuID0gcHMtPnRocmVhZF93YWl0c19sZW47CmRpZmYgLS1naXQg YS9saWJzdG9yZS9yZW1hcC5jIGIvbGlic3RvcmUvcmVtYXAuYwppbmRleCBiYmU3ODUwOS4u NzkzMzk5MjQgMTAwNjQ0Ci0tLSBhL2xpYnN0b3JlL3JlbWFwLmMKKysrIGIvbGlic3RvcmUv cmVtYXAuYwpAQCAtMzE3LDcgKzMxNywxNCBAQCBzdG9yZV9yZW1hcF9ydW5zIChjb25zdCBz dHJ1Y3Qgc3RvcmVfcnVuICpydW5zLCBzaXplX3QgbnVtX3J1bnMsCiAgICAgfQogCiAgIGlm ICh4cnVuc19hbGxvY2VkID4gKm51bV94cnVucykKLSAgICAqeHJ1bnMgPSByZWFsbG9jICgq eHJ1bnMsICpudW1feHJ1bnMgKiBzaXplb2YgKHN0cnVjdCBzdG9yZV9ydW4pKTsKKyAgICB7 CisgICAgICB2b2lkICpuZXdfeHJ1bnMgPSByZWFsbG9jICgqeHJ1bnMsICpudW1feHJ1bnMK KwkJCQkJICAqIHNpemVvZiAoc3RydWN0IHN0b3JlX3J1bikpOworICAgICAgaWYgKCFuZXdf eHJ1bnMpCisJcmV0dXJuIDA7CisKKyAgICAgIHhydW5zID0gbmV3X3hydW5zOworICAgIH0K IAogICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2x3aXAvbHdpcC11dGlsLmMgYi9sd2lw L2x3aXAtdXRpbC5jCmluZGV4IDRhODNiOGYwLi4zMmIzNzk2YiAxMDA2NDQKLS0tIGEvbHdp cC9sd2lwLXV0aWwuYworKysgYi9sd2lwL2x3aXAtdXRpbC5jCkBAIC0xNTAsNyArMTUwLDEw IEBAIGluaXRfaWZzICh2b2lkICphcmcpCiAgIGludCBpOwogCiAgIGlmIChuZXRpZl9saXN0 ID09IDApCi0gICAgbmV0aWZfbGlzdCA9IGNhbGxvYyAoMSwgc2l6ZW9mIChzdHJ1Y3QgbmV0 aWYpKTsKKyAgICB7CisgICAgICBuZXRpZl9saXN0ID0gY2FsbG9jICgxLCBzaXplb2YgKHN0 cnVjdCBuZXRpZikpOworICAgICAgYXNzZXJ0X2JhY2t0cmFjZSAobmV0aWZfbGlzdCk7Cisg ICAgfQogCiAgIGlmIChuZXRpZl9saXN0LT5uZXh0ID09IDApCiAgICAgaW5pdF9sb29wYmFj ayAoKTsKQEAgLTE4Niw2ICsxODksNyBAQCBpbml0X2lmcyAodm9pZCAqYXJnKQogCWNvbnRp bnVlOwogCiAgICAgICBuZXRpZiA9IGNhbGxvYyAoMSwgc2l6ZW9mIChzdHJ1Y3QgbmV0aWYp KTsKKyAgICAgIGFzc2VydF9iYWNrdHJhY2UgKG5ldGlmKTsKIAogICAgICAgY3JlYXRlX25l dGlmX3N0YXRlIChpbi0+ZGV2X25hbWUsICZpZmMpOwogCkBAIC0zNjYsNiArMzcwLDkgQEAg Y29uZmlndXJlX2RldmljZSAoc3RydWN0IG5ldGlmICpuZXRpZiwgaXA0X2FkZHJfdCBhZGRy LCBpcDRfYWRkcl90IG5ldG1hc2ssCiAgICAgewogICAgICAgLyogQ2FsbCB1cGRhdGVfaWYo KSBpbnNpZGUgdGhlIHRjcGlwX3RocmVhZCAqLwogICAgICAgc3RydWN0IHVwZGF0ZV9pZl9h cmdzICphcmcgPSBjYWxsb2MgKDEsIHNpemVvZiAoc3RydWN0IHVwZGF0ZV9pZl9hcmdzKSk7 CisgICAgICBpZiAoIWFyZykKKyAgICAgICAgcmV0dXJuIEVOT01FTTsKKwogICAgICAgYXJn LT5uZXRpZiA9IG5ldGlmOwogICAgICAgYXJnLT5hZGRyID0gYWRkcjsKICAgICAgIGFyZy0+ bmV0bWFzayA9IG5ldG1hc2s7CmRpZmYgLS1naXQgYS9sd2lwL3BmaW5ldC1vcHMuYyBiL2x3 aXAvcGZpbmV0LW9wcy5jCmluZGV4IDA3NTVmY2IzLi5iOWQyZWYyNSAxMDA2NDQKLS0tIGEv bHdpcC9wZmluZXQtb3BzLmMKKysrIGIvbHdpcC9wZmluZXQtb3BzLmMKQEAgLTEwNiw2ICsx MDYsOSBAQCBsd2lwX1NfcGZpbmV0X3Npb2NnaWZjb25mIChpb190IHBvcnQsCiAJICB2b2lk ICpidWYgPSBtbWFwICgwLCBhbW91bnQsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCiAJCQkg ICAgTUFQX0FOT04sIDAsIDApOwogCSAgaWYgKGJ1ZiA9PSBNQVBfRkFJTEVEKQorCSAgICAv KiBTaG91bGQgY2hlY2sgd2hldGhlciBlcnJubyBpcyBpbmRlZWQgRU5PTUVNIC0tCisJICAg ICAgIGJ1dCB0aGlzIGNhbid0IGJlIGRvbmUgaW4gYSBzdHJhaWdodGZvcndhcmQgd2F5LAor CSAgICAgICBiZWNhdXNlIHRoZSBnbHVlIGhlYWRlcnMgI3VuZGVmIGVycm5vLiAqLwogCSAg ICByZXR1cm4gRU5PTUVNOwogCiAJICBpZmMuaWZjX2J1ZiA9IGJ1ZjsKQEAgLTIwOSw2ICsy MTIsOCBAQCBsd2lwX1NfcGZpbmV0X2dldHJvdXRlcyAoaW9fdCBwb3J0LAogICAgICpkZWFs bG9jX2RhdGEgPSBGQUxTRTsKIAogICBydGFibGUgPSBjYWxsb2MgKE1BWF9ST1VURVMsIHNp emVvZiAoaWZydHJlcV90KSk7CisgIGlmICghcnRhYmxlKQorICAgIHJldHVybiBFTk9NRU07 CiAKICAgYXZhaWxhYmxlX2NvdW50ID0gZ2V0X3JvdXRlcyAocnRhYmxlKTsKIApAQCAtMjMx LDYgKzIzNiw5IEBAIGx3aXBfU19wZmluZXRfZ2V0cm91dGVzIChpb190IHBvcnQsCiAKICAg ICBpZiAoKnJvdXRlcyA9PSBNQVBfRkFJTEVEKQogICAgIHsKKyAgICAgIC8qIFNob3VsZCBj aGVjayB3aGV0aGVyIGVycm5vIGlzIGluZGVlZCBFTk9NRU0gLS0KKwkgYnV0IHRoaXMgY2Fu J3QgYmUgZG9uZSBpbiBhIHN0cmFpZ2h0Zm9yd2FyZCB3YXksCisJIGJlY2F1c2UgdGhlIGds dWUgaGVhZGVycyAjdW5kZWYgZXJybm8uICovCiAgICAgICAqbGVuID0gMDsKICAgICAgIHJl dHVybiBFTk9NRU07CiAgICAgfQpkaWZmIC0tZ2l0IGEvbHdpcC9wb3J0L25ldGlmL2lmY29t bW9uLmMgYi9sd2lwL3BvcnQvbmV0aWYvaWZjb21tb24uYwppbmRleCBjYzQyOTBhMC4uYTg2 YzRlZGYgMTAwNjQ0Ci0tLSBhL2x3aXAvcG9ydC9uZXRpZi9pZmNvbW1vbi5jCisrKyBiL2x3 aXAvcG9ydC9uZXRpZi9pZmNvbW1vbi5jCkBAIC0xNTYsNiArMTU2LDkgQEAgaWZfY2hhbmdl X2ZsYWdzIChzdHJ1Y3QgbmV0aWYgKiBuZXRpZiwgdWludDE2X3QgZmxhZ3MpCiAgICAqLwog ICBzdHJ1Y3QgaWZfY2hhbmdlX2ZsYWdzX2FyZ3MgKmFyZ3MgPQogICAgIGNhbGxvYyAoMSwg c2l6ZW9mIChzdHJ1Y3QgaWZfY2hhbmdlX2ZsYWdzX2FyZ3MpKTsKKyAgaWYgKCFhcmdzKQor ICAgIHJldHVybiBFTk9NRU07CisKICAgYXJncy0+bmV0aWYgPSBuZXRpZjsKICAgYXJncy0+ ZmxhZ3MgPSBmbGFnczsKICAgZXJyID0gdGNwaXBfY2FsbGJhY2tfd2FpdChfaWZfY2hhbmdl X2ZsYWdzLCBhcmdzKTsKZGlmZiAtLWdpdCBhL2x3aXAvc29ja2V0LW9wcy5jIGIvbHdpcC9z b2NrZXQtb3BzLmMKaW5kZXggNTVmNWE2MDYuLmI0MjJmMjg5IDEwMDY0NAotLS0gYS9sd2lw L3NvY2tldC1vcHMuYworKysgYi9sd2lwL3NvY2tldC1vcHMuYwpAQCAtMjkxLDYgKzI5MSw5 IEBAIGx3aXBfU19zb2NrZXRfd2hhdGlzX2FkZHJlc3MgKHN0cnVjdCBzb2NrX2FkZHIgKiBh ZGRyLAogICAgICAgdm9pZCAqYnVmID0gbW1hcCAoMCwgYWRkci0+YWRkcmVzcy5zYS5zYV9s ZW4sIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCiAgICAgICAgICAgICAgICAgICAgICAgICBN QVBfQU5PTiwgMCwgMCk7CiAgICAgICBpZiAoYnVmID09IE1BUF9GQUlMRUQpCisgICAgICAg IC8qIFNob3VsZCBjaGVjayB3aGV0aGVyIGVycm5vIGlzIGluZGVlZCBFTk9NRU0gLS0KKyAg ICAgICAgICAgYnV0IHRoaXMgY2FuJ3QgYmUgZG9uZSBpbiBhIHN0cmFpZ2h0Zm9yd2FyZCB3 YXksCisgICAgICAgICAgIGJlY2F1c2UgdGhlIGdsdWUgaGVhZGVycyAjdW5kZWYgZXJybm8u ICovCiAgICAgICAgIHJldHVybiBFTk9NRU07CiAKICAgICAgICpkYXRhID0gYnVmOwpkaWZm IC0tZ2l0IGEvbWFjaC1kZWZwYWdlci9kZWZhdWx0X3BhZ2VyLmMgYi9tYWNoLWRlZnBhZ2Vy L2RlZmF1bHRfcGFnZXIuYwppbmRleCBlNTVmYTY0Mi4uODEzYTBhNTMgMTAwNjQ0Ci0tLSBh L21hY2gtZGVmcGFnZXIvZGVmYXVsdF9wYWdlci5jCisrKyBiL21hY2gtZGVmcGFnZXIvZGVm YXVsdF9wYWdlci5jCkBAIC0xODgsMTMgKzE4OCwyMCBAQCBuZXdfcGFydGl0aW9uIChjb25z dCBjaGFyICpuYW1lLCBzdHJ1Y3QgZmlsZV9kaXJlY3QgKmZkcCwKIAlibXNpemUgPSBob3dt YW55KHNpemUsIE5CX0JNKSAqIHNpemVvZihibV9lbnRyeV90KTsKIAogCXBhcnQgPSAocGFy dGl0aW9uX3QpIG1hbGxvYyhzaXplb2Yoc3RydWN0IHBhcnQpKTsKKwlpZiAoIXBhcnQpCisJ ICBwYW5pYygiKGRlZmF1bHQgcGFnZXIpOiBmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZv ciBwYXJ0Iik7CiAJcHRocmVhZF9tdXRleF9pbml0KCZwYXJ0LT5wX2xvY2ssIE5VTEwpOwog CXBhcnQtPm5hbWUJPSAoY2hhciopIG1hbGxvYyhuICsgMSk7CisJaWYgKCFwYXJ0LT5uYW1l KQorCSAgcGFuaWMoIihkZWZhdWx0IHBhZ2VyKTogZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9y eSBmb3IgcGFydC0+bmFtZSIpOwogCXN0cmNweShwYXJ0LT5uYW1lLCBuYW1lKTsKIAlwYXJ0 LT50b3RhbF9zaXplID0gc2l6ZTsKIAlwYXJ0LT5mcmVlCT0gc2l6ZTsKIAlwYXJ0LT5pZAk9 IGlkOwogCXBhcnQtPmJpdG1hcAk9IChibV9lbnRyeV90ICopbWFsbG9jKGJtc2l6ZSk7CisJ aWYgKCFwYXJ0LT5iaXRtYXApCisJICBwYW5pYygiKGRlZmF1bHQgcGFnZXIpOiAiCisJICAg ICAgICAiZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgcGFydC0+Yml0bWFwIik7CiAJ cGFydC0+Z29pbmdfYXdheT0gRkFMU0U7CiAJcGFydC0+ZmlsZSA9IGZkcDsKIApAQCAtNjMz LDYgKzY0MCw4IEBAIGRwX21hcF90IHBhZ2VyX2dldF9kaXJlY3RfbWFwKGRwYWdlcl90CXBh Z2VyKQogCSAgICB9CiAKIAkgICAgbWFwcHRyID0gKGRwX21hcF90KSBtYWxsb2MoYWxsb2Nf c2l6ZSk7CisJICAgIGlmICghbWFwcHRyKQorCSAgICAgIHBhbmljKCIoZGVmYXVsdCBwYWdl cik6IGZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIG1hcHB0ciIpOwogCSAgICBmb3Ig KGVtYXBwdHIgPSAmbWFwcHRyWyhhbGxvY19zaXplLTEpIC8gc2l6ZW9mKHZtX29mZnNldF90 KV07CiAJCSBlbWFwcHRyID49IG1hcHB0cjsKIAkJIGVtYXBwdHItLSkKQEAgLTY4MywxMCAr NjkyLDE2IEBAIHBhZ2VyX2FsbG9jKGRwYWdlcl90CXBhZ2VyLAogCWlmIChJTkRJUkVDVF9Q QUdFTUFQKHNpemUpKSB7CiAJCW1hcHB0ciA9ICh2bV9vZmZzZXRfdCAqKQogCQkJbWFsbG9j KElORElSRUNUX1BBR0VNQVBfU0laRShzaXplKSk7CisJCWlmICghbWFwcHRyKQorCQkJcGFu aWMoIihkZWZhdWx0IHBhZ2VyKTogIgorCQkJICAgICAgImZhaWxlZCB0byBhbGxvY2F0ZSBt ZW1vcnkgZm9yIG1hcHB0ciIpOwogCQlmb3IgKGkgPSBJTkRJUkVDVF9QQUdFTUFQX0VOVFJJ RVMoc2l6ZSk7IC0taSA+PSAwOykKIAkJCW1hcHB0cltpXSA9IDA7CiAJfSBlbHNlIHsKIAkJ bWFwcHRyID0gKHZtX29mZnNldF90ICopIG1hbGxvYyhQQUdFTUFQX1NJWkUoc2l6ZSkpOwor CQlpZiAoIW1hcHB0cikKKwkJCXBhbmljKCIoZGVmYXVsdCBwYWdlcik6ICIKKwkJCSAgICAg ICJmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBtYXBwdHIiKTsKIAkJZm9yIChpID0g MDsgaSA8IHNpemU7IGkrKykKIAkJCW1hcHB0cltpXSA9IE5PX0NIRUNLU1VNOwogCX0KQEAg LTgyOCw2ICs4NDMsOSBAQCBwYWdlcl9leHRlbmQoZHBhZ2VyX3QJcGFnZXIsCiAJICAgICAq LwogCSAgICBuZXdfbWFwcHRyID0gKGRwX21hcF90KQogCQkJbWFsbG9jKElORElSRUNUX1BB R0VNQVBfU0laRShuZXdfc2l6ZSkpOworCSAgICBpZiAoIW5ld19tYXBwdHIpCisJCXBhbmlj KCIoZGVmYXVsdCBwYWdlcik6ICIKKwkJICAgICAgImZhaWxlZCB0byBhbGxvY2F0ZSBtZW1v cnkgZm9yIG5ld19tYXBwdHIiKTsKIAkgICAgb2xkX21hcHB0ciA9IHBhZ2VyX2dldF9kaXJl Y3RfbWFwKHBhZ2VyKTsKIAkgICAgZm9yIChpID0gMDsgaSA8IElORElSRUNUX1BBR0VNQVBf RU5UUklFUyhvbGRfc2l6ZSk7IGkrKykKIAkJbmV3X21hcHB0cltpXSA9IG9sZF9tYXBwdHJb aV07CkBAIC04MzksNiArODU3LDkgQEAgcGFnZXJfZXh0ZW5kKGRwYWdlcl90CXBhZ2VyLAog I2lmZGVmCUNIRUNLU1VNCiAJICAgIG5ld19tYXBwdHIgPSAodm1fb2Zmc2V0X3QgKikKIAkJ CW1hbGxvYyhJTkRJUkVDVF9QQUdFTUFQX1NJWkUobmV3X3NpemUpKTsKKwkgICAgaWYgKCFu ZXdfbWFwcHRyKQorCQlwYW5pYygiKGRlZmF1bHQgcGFnZXIpOiAiCisJCSAgICAgICJmYWls ZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBuZXdfbWFwcHRyIik7CiAJICAgIG9sZF9tYXBw dHIgPSBwYWdlci0+Y2hlY2tzdW07CiAJICAgIGZvciAoaSA9IDA7IGkgPCBJTkRJUkVDVF9Q QUdFTUFQX0VOVFJJRVMob2xkX3NpemUpOyBpKyspCiAJCW5ld19tYXBwdHJbaV0gPSBvbGRf bWFwcHRyW2ldOwpAQCAtODczLDYgKzg5NCw5IEBAIHBhZ2VyX2V4dGVuZChkcGFnZXJfdAlw YWdlciwKIAkgICAgICogQWxsb2NhdGUgbmV3IHNlY29uZC1sZXZlbCBtYXAgZmlyc3QuCiAJ ICAgICAqLwogCSAgICBuZXdfbWFwcHRyID0gKGRwX21hcF90KSBtYWxsb2MoUEFHRU1BUF9T SVpFKFBBR0VNQVBfRU5UUklFUykpOworCSAgICBpZiAoIW5ld19tYXBwdHIpCisJCXBhbmlj KCIoZGVmYXVsdCBwYWdlcik6ICIKKwkJICAgICAgImZhaWxlZCB0byBhbGxvY2F0ZSBtZW1v cnkgZm9yIG5ld19tYXBwdHIiKTsKIAkgICAgb2xkX21hcHB0ciA9IHBhZ2VyX2dldF9kaXJl Y3RfbWFwKHBhZ2VyKTsKIAkgICAgZm9yIChpID0gMDsgaSA8IG9sZF9zaXplOyBpKyspCiAJ CW5ld19tYXBwdHJbaV0gPSBvbGRfbWFwcHRyW2ldOwpAQCAtODk0LDYgKzkxOCw5IEBAIHBh Z2VyX2V4dGVuZChkcGFnZXJfdAlwYWdlciwKIAkgICAgICovCiAJICAgIG5ld19tYXBwdHIg PSAoZHBfbWFwX3QpCiAJCQltYWxsb2MoSU5ESVJFQ1RfUEFHRU1BUF9TSVpFKG5ld19zaXpl KSk7CisJICAgIGlmICghbmV3X21hcHB0cikKKwkJcGFuaWMoIihkZWZhdWx0IHBhZ2VyKTog IgorCQkgICAgICAiZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgbmV3X21hcHB0ciIp OwogCSAgICBuZXdfbWFwcHRyWzBdLmluZGlyZWN0ID0gb2xkX21hcHB0cjsKIAkgICAgZm9y IChpID0gMTsgaSA8IElORElSRUNUX1BBR0VNQVBfRU5UUklFUyhuZXdfc2l6ZSk7IGkrKykK IAkJbmV3X21hcHB0cltpXS5pbmRpcmVjdCA9IDA7CkBAIC05MDQsNiArOTMxLDkgQEAgcGFn ZXJfZXh0ZW5kKGRwYWdlcl90CXBhZ2VyLAogCSAgICAgKiBBbGxvY2F0ZSBuZXcgc2Vjb25k LWxldmVsIG1hcCBmaXJzdC4KIAkgICAgICovCiAJICAgIG5ld19tYXBwdHIgPSAodm1fb2Zm c2V0X3QgKiltYWxsb2MoUEFHRU1BUF9TSVpFKFBBR0VNQVBfRU5UUklFUykpOworCSAgICBp ZiAoIW5ld19tYXBwdHIpCisJCXBhbmljKCIoZGVmYXVsdCBwYWdlcik6ICIKKwkJICAgICAg ImZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIG5ld19tYXBwdHIiKTsKIAkgICAgb2xk X21hcHB0ciA9IHBhZ2VyLT5jaGVja3N1bTsKIAkgICAgZm9yIChpID0gMDsgaSA8IG9sZF9z aXplOyBpKyspCiAJCW5ld19tYXBwdHJbaV0gPSBvbGRfbWFwcHRyW2ldOwpAQCAtOTE3LDYg Kzk0Nyw5IEBAIHBhZ2VyX2V4dGVuZChkcGFnZXJfdAlwYWdlciwKIAkgICAgICovCiAJICAg IG5ld19tYXBwdHIgPSAodm1fb2Zmc2V0X3QgKikKIAkJCW1hbGxvYyhJTkRJUkVDVF9QQUdF TUFQX1NJWkUobmV3X3NpemUpKTsKKwkgICAgaWYgKCFuZXdfbWFwcHRyKQorCQlwYW5pYygi KGRlZmF1bHQgcGFnZXIpOiAiCisJCSAgICAgICJmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5 IGZvciBuZXdfbWFwcHRyIik7CiAJICAgIG5ld19tYXBwdHJbMF0gPSAodm1fb2Zmc2V0X3Qp IG9sZF9tYXBwdHI7CiAJICAgIGZvciAoaSA9IDE7IGkgPCBJTkRJUkVDVF9QQUdFTUFQX0VO VFJJRVMobmV3X3NpemUpOyBpKyspCiAJCW5ld19tYXBwdHJbaV0gPSAwOwpAQCAtOTMyLDYg Kzk2NSw5IEBAIHBhZ2VyX2V4dGVuZChkcGFnZXJfdAlwYWdlciwKIAkgKiBFbmxhcmdpbmcg YSBkaXJlY3QgYmxvY2suCiAJICovCiAJbmV3X21hcHB0ciA9IChkcF9tYXBfdCkJbWFsbG9j KFBBR0VNQVBfU0laRShuZXdfc2l6ZSkpOworCWlmICghbmV3X21hcHB0cikKKwkgICAgcGFu aWMoIihkZWZhdWx0IHBhZ2VyKTogIgorCQkgICJmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5 IGZvciBuZXdfbWFwcHRyIik7CiAJb2xkX21hcHB0ciA9IHBhZ2VyX2dldF9kaXJlY3RfbWFw KHBhZ2VyKTsKIAlmb3IgKGkgPSAwOyBpIDwgb2xkX3NpemU7IGkrKykKIAkgICAgbmV3X21h cHB0cltpXSA9IG9sZF9tYXBwdHJbaV07CkBAIC05NDMsNiArOTc5LDkgQEAgcGFnZXJfZXh0 ZW5kKGRwYWdlcl90CXBhZ2VyLAogI2lmZGVmCUNIRUNLU1VNCiAJbmV3X21hcHB0ciA9ICh2 bV9vZmZzZXRfdCAqKQogCQltYWxsb2MoUEFHRU1BUF9TSVpFKG5ld19zaXplKSk7CisJaWYg KCFuZXdfbWFwcHRyKQorCSAgICBwYW5pYygiKGRlZmF1bHQgcGFnZXIpOiAiCisJCSAgImZh aWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIG5ld19tYXBwdHIiKTsKIAlvbGRfbWFwcHRy ID0gcGFnZXItPmNoZWNrc3VtOwogCWZvciAoaSA9IDA7IGkgPCBvbGRfc2l6ZTsgaSsrKQog CSAgICBuZXdfbWFwcHRyW2ldID0gb2xkX21hcHB0cltpXTsKQEAgLTEwMjEsNiArMTA2MCw5 IEBAIHBhZ2VyX3RydW5jYXRlKGRwYWdlcl90IHBhZ2VyLCB2bV9zaXplX3QgbmV3X3NpemUp CS8qIGluIHBhZ2VzICovCiAJewogCSAgY29uc3QgZHBfbWFwX3Qgb2xkX21hcHB0ciA9IHBh Z2VyLT5tYXA7CiAJICBwYWdlci0+bWFwID0gKGRwX21hcF90KSBtYWxsb2MgKElORElSRUNU X1BBR0VNQVBfU0laRShuZXdfc2l6ZSkpOworCSAgaWYgKCFwYWdlci0+bWFwKQorCSAgICBw YW5pYygiKGRlZmF1bHQgcGFnZXIpOiAiCisJCSAgImZhaWxlZCB0byBhbGxvY2F0ZSBtZW1v cnkgZm9yIHBhZ2VyLT5tYXAiKTsKIAkgIG1lbWNweSAocGFnZXItPm1hcCwgb2xkX21hcHB0 ciwgSU5ESVJFQ1RfUEFHRU1BUF9TSVpFKG5ld19zaXplKSk7CiAJICBmcmVlICgoY2hhciAq KSBvbGRfbWFwcHRyKTsKIAl9CkBAIC0xMDQyLDYgKzEwODQsOCBAQCBwYWdlcl90cnVuY2F0 ZShkcGFnZXJfdCBwYWdlciwgdm1fc2l6ZV90IG5ld19zaXplKQkvKiBpbiBwYWdlcyAqLwog ICAgICAgLyogTm93IHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgZGlyZWN0IG1hcCBpdHNlbGYu ICAqLwogICAgICAgY29uc3QgZHBfbWFwX3Qgb2xkX21hcHB0ciA9IHBhZ2VyLT5tYXA7CiAg ICAgICBwYWdlci0+bWFwID0gKGRwX21hcF90KSBtYWxsb2MgKFBBR0VNQVBfU0laRSAobmV3 X3NpemUpKTsKKyAgICAgIGlmICghcGFnZXItPm1hcCkKKwlwYW5pYygiKGRlZmF1bHQgcGFn ZXIpOiBmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBwYWdlci0+bWFwIik7CiAgICAg ICBtZW1jcHkgKHBhZ2VyLT5tYXAsIG9sZF9tYXBwdHIsIFBBR0VNQVBfU0laRSAobmV3X3Np emUpKTsKICAgICAgIGZyZWUgKChjaGFyICopIG9sZF9tYXBwdHIpOwogICAgIH0KZGlmZiAt LWdpdCBhL25mcy9vcHMuYyBiL25mcy9vcHMuYwppbmRleCBhZmZkZDkzMS4uMWJiZjdlMWQg MTAwNjQ0Ci0tLSBhL25mcy9vcHMuYworKysgYi9uZnMvb3BzLmMKQEAgLTIwODYsMTAgKzIw ODYsMTUgQEAgbmV0ZnNfYXR0ZW1wdF9ta3N5bWxpbmsgKHN0cnVjdCBpb3VzZXIgKmNyZWQs CiAgIGlmIChucC0+bm4tPmR0cmFucyA9PSBOT1RfUE9TU0lCTEUpCiAgICAgcmV0dXJuIEVP UE5PVFNVUFA7CiAKKyAgY2hhciAqbmFtZSA9IG1hbGxvYyAoc3RybGVuIChhcmcpICsgMSk7 CisgIGlmICghbmFtZSkKKyAgICByZXR1cm4gRU5PTUVNOworCiAgIGlmIChucC0+bm4tPmR0 cmFucyA9PSBTWU1MSU5LKQogICAgIGZyZWUgKG5wLT5ubi0+dHJhbnNhcmcubmFtZSk7CiAK LSAgbnAtPm5uLT50cmFuc2FyZy5uYW1lID0gbWFsbG9jIChzdHJsZW4gKGFyZykgKyAxKTsK KyAgbnAtPm5uLT50cmFuc2FyZy5uYW1lID0gbmFtZTsKKwogICBzdHJjcHkgKG5wLT5ubi0+ dHJhbnNhcmcubmFtZSwgYXJnKTsKICAgbnAtPm5uLT5kdHJhbnMgPSBTWU1MSU5LOwogICBu cC0+bm4tPnN0YXRfdXBkYXRlZCA9IDA7CmRpZmYgLS1naXQgYS9uZnNkL2NhY2hlLmMgYi9u ZnNkL2NhY2hlLmMKaW5kZXggODY0NzM5YzAuLmYxM2E4Y2E1IDEwMDY0NAotLS0gYS9uZnNk L2NhY2hlLmMKKysrIGIvbmZzZC9jYWNoZS5jCkBAIC0xMDYsMTAgKzEwNiwxMyBAQCBpZHNw ZWNfbG9va3VwIChpbnQgbnVpZHMsIGludCBuZ2lkcywgaW50ICp1aWRzLCBpbnQgKmdpZHMp CiAKICAgYXNzZXJ0X2JhY2t0cmFjZSAoc2l6ZW9mICh1aWRfdCkgPT0gc2l6ZW9mIChpbnQp KTsKICAgaSA9IG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgaWRzcGVjKSk7CisgIGFzc2VydF9i YWNrdHJhY2UgKGkpOwogICBpLT5udWlkcyA9IG51aWRzOwogICBpLT5uZ2lkcyA9IG5naWRz OwogICBpLT51aWRzID0gbWFsbG9jIChudWlkcyAqIHNpemVvZiAodWlkX3QpKTsKICAgaS0+ Z2lkcyA9IG1hbGxvYyAobmdpZHMgKiBzaXplb2YgKGdpZF90KSk7CisgIGFzc2VydF9iYWNr dHJhY2UgKGktPnVpZHMpOworICBhc3NlcnRfYmFja3RyYWNlIChpLT5naWRzKTsKICAgbWVt Y3B5IChpLT51aWRzLCB1aWRzLCBudWlkcyAqIHNpemVvZiAodWlkX3QpKTsKICAgbWVtY3B5 IChpLT5naWRzLCBnaWRzLCBuZ2lkcyAqIHNpemVvZiAoZ2lkX3QpKTsKICAgaS0+cmVmZXJl bmNlcyA9IDE7CkBAIC0zMDQsNiArMzA3LDcgQEAgbG9va3VwX2NhY2hlX2hhbmRsZSAoaW50 ICpwLCBzdHJ1Y3QgY2FjaGVfaGFuZGxlICoqY3AsIHN0cnVjdCBpZHNwZWMgKmkpCiAgICAg fQogCiAgIGMgPSBtYWxsb2MgKHNpemVvZiAoc3RydWN0IGNhY2hlX2hhbmRsZSkpOworICBh c3NlcnRfYmFja3RyYWNlIChjKTsKICAgbWVtY3B5IChjLT5oYW5kbGUuYXJyYXksIHAsIE5G UzJfRkhTSVpFKTsKICAgY3JlZF9yZWYgKGkpOwogICBjLT5pZHMgPSBpOwpAQCAtNDQ4LDYg KzQ1Miw3IEBAIGNyZWF0ZV9jYWNoZWRfaGFuZGxlIChpbnQgZnMsIHN0cnVjdCBjYWNoZV9o YW5kbGUgKmNyZWRjLCBmaWxlX3QgdXNlcnBvcnQpCiAKICAgLyogQ3JlYXRlIGl0IGFuZXcu ICAqLwogICBjID0gbWFsbG9jIChzaXplb2YgKHN0cnVjdCBjYWNoZV9oYW5kbGUpKTsKKyAg YXNzZXJ0X2JhY2t0cmFjZSAoYyk7CiAgIG1lbWNweSAoYy0+aGFuZGxlLmFycmF5LCBmaGFu ZGxlLmFycmF5LCBORlMyX0ZIU0laRSk7CiAgIGNyZWRfcmVmIChjcmVkYy0+aWRzKTsKICAg Yy0+aWRzID0gY3JlZGMtPmlkczsKQEAgLTQ5OCw2ICs1MDMsNyBAQCBjaGVja19jYWNoZWRf cmVwbGllcyAoaW50IHhpZCwKICAgICAgIH0KIAogICBjciA9IG1hbGxvYyAoc2l6ZW9mIChz dHJ1Y3QgY2FjaGVkX3JlcGx5KSk7CisgIGFzc2VydF9iYWNrdHJhY2UgKGNyKTsKICAgcHRo cmVhZF9tdXRleF9pbml0ICgmY3ItPmxvY2ssIE5VTEwpOwogICBwdGhyZWFkX211dGV4X2xv Y2sgKCZjci0+bG9jayk7CiAgIG1lbWNweSAoJmNyLT5zb3VyY2UsIHNlbmRlciwgc2l6ZW9m IChzdHJ1Y3Qgc29ja2FkZHJfaW4pKTsKZGlmZiAtLWdpdCBhL25mc2QvZnN5cy5jIGIvbmZz ZC9mc3lzLmMKaW5kZXggZjc0NjcxNjUuLmRlZjQ0M2UyIDEwMDY0NAotLS0gYS9uZnNkL2Zz eXMuYworKysgYi9uZnNkL2ZzeXMuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGh1 cmQuaD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1 ZGUgPGFzc2VydC1iYWNrdHJhY2UuaD4KIAogI2luY2x1ZGUgIm5mc2QuaCIKIApAQCAtNTQs NiArNTUsMTIgQEAgaW5pdF9maWxlc3lzdGVtcyAodm9pZCkKIAogICBmc3lzdGFibGUgPSAo c3RydWN0IGZzeXNfc3BlYyAqKSBtYWxsb2MgKChmc3lzdGFibGVzaXplID0gMTApCiAJCQkJ CSAgICogc2l6ZW9mIChzdHJ1Y3QgZnN5c19zcGVjKSk7CisgIGlmICghZnN5c3RhYmxlKQor ICAgIHsKKyAgICAgIGVycm9yICgwLCBFTk9NRU0sICJGYWlsZWQgdG8gYWxsb2NhdGUgbWVt b3J5IGZvciBmc3lzdGFibGUiKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKICAgZm9yIChp ID0gMDsgaSA8IGZzeXN0YWJsZXNpemU7IGkrKykKICAgICB7CiAgICAgICBmc3lzdGFibGVb aV0uZnN5cyA9IE1BQ0hfUE9SVF9OVUxMOwpAQCAtOTYsOCArMTAzLDE1IEBAIGluaXRfZmls ZXN5c3RlbXMgKHZvaWQpCiAKICAgICAgIGlmIChpbmRleCA+PSBmc3lzdGFibGVzaXplKQog CXsKLQkgIGZzeXN0YWJsZSA9IChzdHJ1Y3QgZnN5c19zcGVjICopCisJICB2b2lkICpuZXdf ZnN5c3RhYmxlID0KIAkgICAgcmVhbGxvYyAoZnN5c3RhYmxlLCBpbmRleCAqIDIgKiBzaXpl b2YgKHN0cnVjdCBmc3lzX3NwZWMpKTsKKwkgIGlmICghbmV3X2ZzeXN0YWJsZSkKKwkgICAg eworCSAgICAgIGVycm9yICgwLCBFTk9NRU0sICJDYW5ub3QgcmVhbGxvY2F0ZSBtZW1vcnkg Zm9yIGZzeXN0YWJsZSIpOworCSAgICAgIHJldHVybjsKKwkgICAgfQorCisJICBmc3lzdGFi bGUgPSBuZXdfZnN5c3RhYmxlOwogCSAgZm9yIChpID0gZnN5c3RhYmxlc2l6ZTsgaSA8IGlu ZGV4ICogMjsgaSsrKQogCSAgICB7CiAJICAgICAgZnN5c3RhYmxlW2ldLmZzeXMgPSBNQUNI X1BPUlRfTlVMTDsKQEAgLTE5MCw2ICsyMDQsNyBAQCBlbnRlcl9maWxlc3lzdGVtIChjaGFy ICpuYW1lLCBmaWxlX3Qgcm9vdCkKICAgICAgIGZzeXN0YWJsZSA9IChzdHJ1Y3QgZnN5c19z cGVjICopIHJlYWxsb2MgKGZzeXN0YWJsZSwKIAkJCQkJCShmc3lzdGFibGVzaXplICogMikK IAkJCQkJCSogc2l6ZW9mIChzdHJ1Y3QgZnN5c19zcGVjKSk7CisgICAgICBhc3NlcnRfYmFj a3RyYWNlIChmc3lzdGFibGUpOwogICAgICAgZm9yIChpID0gZnN5c3RhYmxlc2l6ZTsgaSA8 IGZzeXN0YWJsZXNpemUgKiAyOyBpKyspCiAJewogCSAgZnN5c3RhYmxlW2ldLmZzeXMgPSBN QUNIX1BPUlRfTlVMTDsKQEAgLTE5OSw2ICsyMTQsNyBAQCBlbnRlcl9maWxlc3lzdGVtIChj aGFyICpuYW1lLCBmaWxlX3Qgcm9vdCkKICAgICB9CiAKICAgZnN5c3RhYmxlW25mc3lzXS5u YW1lID0gbWFsbG9jIChzdHJsZW4gKG5hbWUpICsgMSk7CisgIGFzc2VydF9iYWNrdHJhY2Ug KGZzeXN0YWJsZVtuZnN5c10ubmFtZSk7CiAgIHN0cmNweSAoZnN5c3RhYmxlW25mc3lzXS5u YW1lLCBuYW1lKTsKICAgZmlsZV9nZXRjb250cm9sIChyb290LCAmZnN5c3RhYmxlW25mc3lz XS5mc3lzKTsKICAgbmZzeXMrKzsKZGlmZiAtLWdpdCBhL25mc2QvbG9vcC5jIGIvbmZzZC9s b29wLmMKaW5kZXggOGUzYWIyNTEuLjM4NmE5MDQzIDEwMDY0NAotLS0gYS9uZnNkL2xvb3Au YworKysgYi9uZnNkL2xvb3AuYwpAQCAtMjAsNiArMjAsNyBAQAogCiAjaW5jbHVkZSA8c3Ry aW5nLmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxhc3NlcnQtYmFja3RyYWNl Lmg+CiAKICNpbmNsdWRlICJuZnNkLmgiCiAKQEAgLTgxLDYgKzgyLDcgQEAgc2VydmVyX2xv b3AgKHZvaWQgKmFyZykKIAlnb3RvIHJlcG9zdF9yZXBseTsKIAogICAgICAgciA9IChpbnQg KikgKHJidWYgPSBtYWxsb2MgKE1BWElPU0laRSkpOworICAgICAgYXNzZXJ0X2JhY2t0cmFj ZSAocik7CiAKICAgICAgIGlmIChudG9obCAoKnApICE9IFJQQ19NU0dfVkVSU0lPTikKIAl7 CkBAIC0xNzcsNiArMTc5LDcgQEAgc2VydmVyX2xvb3AgKHZvaWQgKmFyZykKIAkgICAgewog CSAgICAgIGZyZWUgKHJidWYpOwogCSAgICAgIHIgPSAoaW50ICopIChyYnVmID0gbWFsbG9j IChhbXQpKTsKKwkgICAgICBhc3NlcnRfYmFja3RyYWNlIChyKTsKIAkgICAgfQogCX0KIApk aWZmIC0tZ2l0IGEvbmZzZC94ZHIuYyBiL25mc2QveGRyLmMKaW5kZXggOGIxNzU1OTUuLmM0 MGRjMWVkIDEwMDY0NAotLS0gYS9uZnNkL3hkci5jCisrKyBiL25mc2QveGRyLmMKQEAgLTIz LDYgKzIzLDcgQEAKICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUgPHN5cy9zdGF0 ZnMuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxhc3NlcnQtYmFja3RyYWNl Lmg+CiAjaW5jbHVkZSAibmZzZC5oIgogCiAvKiBBbnkgYmV0dGVyIGlkZWFzPyAgKi8KQEAg LTk2LDYgKzk3LDcgQEAgZGVjb2RlX25hbWUgKGludCAqcCwgY2hhciAqKm5hbWUpCiAgIGxl biA9IG50b2hsICgqcCk7CiAgIHArKzsKICAgKm5hbWUgPSBtYWxsb2MgKGxlbiArIDEpOwor ICBhc3NlcnRfYmFja3RyYWNlICgqbmFtZSk7CiAgIG1lbWNweSAoKm5hbWUsIHAsIGxlbik7 CiAgICgqbmFtZSlbbGVuXSA9ICdcMCc7CiAgIHJldHVybiBwICsgSU5UU0laRSAobGVuKTsK ZGlmZiAtLWdpdCBhL3BmaW5ldC9nbHVlLWluY2x1ZGUvbGludXgva2VybmVsLmggYi9wZmlu ZXQvZ2x1ZS1pbmNsdWRlL2xpbnV4L2tlcm5lbC5oCmluZGV4IDYyYmEyZmYxLi5lMzRjMGE3 NyAxMDA2NDQKLS0tIGEvcGZpbmV0L2dsdWUtaW5jbHVkZS9saW51eC9rZXJuZWwuaAorKysg Yi9wZmluZXQvZ2x1ZS1pbmNsdWRlL2xpbnV4L2tlcm5lbC5oCkBAIC00Niw2ICs0Niw5IEBA IHN0YXRpYyBpbmxpbmUgaW50CiBnZXRuYW1lIChjb25zdCBjaGFyICpuYW1lLCBjaGFyICoq bmV3cCkKIHsKICAgKm5ld3AgPSBtYWxsb2MgKHN0cmxlbiAobmFtZSkgKyAxKTsKKyAgaWYg KCEqbmV3cCkKKyAgICByZXR1cm4gRU5PTUVNOworCiAgIHN0cmNweSAoKm5ld3AsIG5hbWUp OwogICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3BmaW5ldC9zb2NrZXQtb3BzLmMgYi9w ZmluZXQvc29ja2V0LW9wcy5jCmluZGV4IGZmMmU4MmJiLi41YzU4N2ZhYSAxMDA2NDQKLS0t IGEvcGZpbmV0L3NvY2tldC1vcHMuYworKysgYi9wZmluZXQvc29ja2V0LW9wcy5jCkBAIC0z NDksNiArMzQ5LDkgQEAgU19zb2NrZXRfd2hhdGlzX2FkZHJlc3MgKHN0cnVjdCBzb2NrX2Fk ZHIgKmFkZHIsCiAgICAgICB2b2lkICpuZXdfZGF0YSA9IG1tYXAgKDAsIGFkZHItPmFkZHJl c3Muc2FfbGVuLCBQUk9UX1JFQUR8UFJPVF9XUklURSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTUFQX0FOT04sIDAsIDApOwogICAgICAgaWYgKG5ld19kYXRhID09IE1BUF9G QUlMRUQpCisgICAgICAgIC8qIFNob3VsZCBjaGVjayB3aGV0aGVyIGVycm5vIGlzIGluZGVl ZCBFTk9NRU0gLS0KKyAgICAgICAgICAgYnV0IHRoaXMgY2FuJ3QgYmUgZG9uZSBpbiBhIHN0 cmFpZ2h0Zm9yd2FyZCB3YXksCisgICAgICAgICAgIGJlY2F1c2UgdGhlIGdsdWUgaGVhZGVy cyAjdW5kZWYgZXJybm8uICovCiAgICAgICAgIHJldHVybiBFTk9NRU07CiAKICAgICAgICpk YXRhID0gbmV3X2RhdGE7CmRpZmYgLS1naXQgYS9wcm9jL21ndC5jIGIvcHJvYy9tZ3QuYwpp bmRleCBkY2I2MTlhZi4uMDVhZjgyM2YgMTAwNjQ0Ci0tLSBhL3Byb2MvbWd0LmMKKysrIGIv cHJvYy9tZ3QuYwpAQCAtODg1LDYgKzg4NSw3IEBAIGNvbXBsZXRlX3Byb2MgKHN0cnVjdCBw cm9jICpwLCBwaWRfdCBwaWQpCiAgIGlmICghbnVsbGxvZ2luKQogICAgIHsKICAgICAgIG51 bGxsb2dpbiA9IG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgbG9naW4pICsgc2l6ZW9mIChudWxs c25hbWUpICsgMSk7CisgICAgICBhc3NlcnRfYmFja3RyYWNlIChudWxsbG9naW4pOwogICAg ICAgbnVsbGxvZ2luLT5sX3JlZmNudCA9IDE7CiAgICAgICBzdHJjcHkgKG51bGxsb2dpbi0+ bF9uYW1lLCBudWxsc25hbWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL3Byb2Nmcy9kaXJjYXQu YyBiL3Byb2Nmcy9kaXJjYXQuYwppbmRleCA1YTYwODk5YS4uYzI1NzkyN2MgMTAwNjQ0Ci0t LSBhL3Byb2Nmcy9kaXJjYXQuYworKysgYi9wcm9jZnMvZGlyY2F0LmMKQEAgLTM2LDYgKzM2 LDggQEAgZGlyY2F0X2dldF9jb250ZW50cyAodm9pZCAqaG9vaywgY2hhciAqKmNvbnRlbnRz LCBzc2l6ZV90ICpjb250ZW50c19sZW4pCiAKICAgcG9zID0gMDsKICAgKmNvbnRlbnRzID0g bWFsbG9jIChzeiA9IDUxMik7CisgIGlmICghKmNvbnRlbnRzKQorICAgIHJldHVybiBFTk9N RU07CiAKICAgZm9yIChpPTA7IGkgPCBkY24tPm51bV9kaXJzOyBpKyspCiAgICAgewpAQCAt NTMsOCArNTUsMTkgQEAgZGlyY2F0X2dldF9jb250ZW50cyAodm9pZCAqaG9vaywgY2hhciAq KmNvbnRlbnRzLCBzc2l6ZV90ICpjb250ZW50c19sZW4pCiAJICByZXR1cm4gZXJyOwogCX0K IAorICAgICAgY2hhciAqbmV3X2NvbnRlbnRzOwogICAgICAgd2hpbGUgKHBvcyArIHN1Ymxl biA+IHN6KQotCSpjb250ZW50cyA9IHJlYWxsb2MgKCpjb250ZW50cywgc3ogKj0gMik7CisJ eworCSAgbmV3X2NvbnRlbnRzID0gcmVhbGxvYyAoKmNvbnRlbnRzLCBzeiAqPSAyKTsKKwkg IGlmICghbmV3X2NvbnRlbnRzKQorCSAgICB7CisJICAgICAgZnJlZSAoKmNvbnRlbnRzKTsK KwkgICAgICAqY29udGVudHMgPSBOVUxMOworCSAgICAgIHJldHVybiBFTk9NRU07CisJICAg IH0KKworCSAgKmNvbnRlbnRzID0gbmV3X2NvbnRlbnRzOworCX0KIAogICAgICAgbWVtY3B5 ICgqY29udGVudHMgKyBwb3MsIHN1YmNvbiwgc3VibGVuKTsKICAgICAgIHBvcyArPSBzdWJs ZW47CmRpZmYgLS1naXQgYS9zdGFydHVwL3N0YXJ0dXAuYyBiL3N0YXJ0dXAvc3RhcnR1cC5j CmluZGV4IGZlNDA5ZjVjLi44YWEwNzhhZiAxMDA2NDQKLS0tIGEvc3RhcnR1cC9zdGFydHVw LmMKKysrIGIvc3RhcnR1cC9zdGFydHVwLmMKQEAgLTE1ODYsMTAgKzE1ODYsMTkgQEAgU19z dGFydHVwX3JlcXVlc3Rfbm90aWZpY2F0aW9uIChtYWNoX3BvcnRfdCBzZXJ2ZXIsCiAgICAg IGNhbGxzOyB0aGlzIGlzIGltcG9ydGFudC4gIFdlIG5lZWQgbGF0ZXIgbm90aWZpY2F0aW9u IHJlcXVlc3RzCiAgICAgIHRvIGdldCBleGVjdXRlZCBmaXJzdC4gICovCiAgIG50ID0gbWFs bG9jIChzaXplb2YgKHN0cnVjdCBudGZ5X3Rhc2spKTsKKyAgaWYgKCFudCkKKyAgICByZXR1 cm4gRU5PTUVNOworCiAgIG50LT5ub3RpZnlfcG9ydCA9IG5vdGlmeTsKICAgbnQtPm5leHQg PSBudGZ5X3Rhc2tzOwogICBudGZ5X3Rhc2tzID0gbnQ7CiAgIG50LT5uYW1lID0gbWFsbG9j IChzdHJsZW4gKG5hbWUpICsgMSk7CisgIGlmICghbnQtPm5hbWUpCisgICAgeworICAgICAg ZnJlZSAobnQpOworICAgICAgcmV0dXJuIEVOT01FTTsKKyAgICB9CisKICAgc3RyY3B5IChu dC0+bmFtZSwgbmFtZSk7CiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdGVybS9tYWlu LmMgYi90ZXJtL21haW4uYwppbmRleCA5OWNlMmM2Ni4uOWMxZDgwN2QgMTAwNjQ0Ci0tLSBh L3Rlcm0vbWFpbi5jCisrKyBiL3Rlcm0vbWFpbi5jCkBAIC0xMzIsNiArMTMyLDkgQEAgcGFy c2Vfb3B0IChpbnQgb3B0LCBjaGFyICphcmcsIHN0cnVjdCBhcmdwX3N0YXRlICpzdGF0ZSkK IAogICAgIGNhc2UgQVJHUF9LRVlfSU5JVDoKICAgICAgIHN0YXRlLT5ob29rID0gY2FsbG9j ICgxLCBzaXplb2YgKnYpOworICAgICAgaWYgKCFzdGF0ZS0+aG9vaykKKyAgICAgICAgYXJn cF9mYWlsdXJlIChzdGF0ZSwgRU5PTUVNLCAwLCAiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9y eSBmb3IiCisJCQkJCSIgc3RhdGUtPmhvb2siKTsKICAgICAgIGJyZWFrOwogICAgIGNhc2Ug QVJHUF9LRVlfRklOSToKICAgICAgIGZyZWUgKHYpOwpkaWZmIC0tZ2l0IGEvdGVybS9tdW5n ZS5jIGIvdGVybS9tdW5nZS5jCmluZGV4IDA5MDNkZDAzLi5jYTI3YWMxNSAxMDA2NDQKLS0t IGEvdGVybS9tdW5nZS5jCisrKyBiL3Rlcm0vbXVuZ2UuYwpAQCAtNzUyLDYgKzc1Miw4IEBA IHJlYWxsb2NhdGVfcXVldWUgKHN0cnVjdCBxdWV1ZSAqcSkKICAgICAgIC8qIE1ha2UgdGhl IHF1ZXVlIHR3aWNlIGFzIGxhcmdlLiAqLwogICAgICAgbmV3cSA9IG1hbGxvYyAoc2l6ZW9m IChzdHJ1Y3QgcXVldWUpCiAJCSAgICAgKyBxLT5hcnJheWxlbiAqIDIgKiBzaXplb2YgKHF1 b3RlZF9jaGFyKSk7CisgICAgICBhc3NlcnRfYmFja3RyYWNlIChuZXdxKTsKKwogICAgICAg bmV3cS0+c3VzcCA9IHEtPnN1c3A7CiAgICAgICBuZXdxLT5sb3dhdCA9IHEtPmxvd2F0Owog ICAgICAgbmV3cS0+aGl3YXQgPSBxLT5oaXdhdDsKZGlmZiAtLWdpdCBhL3Rlcm0vdXNlcnMu YyBiL3Rlcm0vdXNlcnMuYwppbmRleCA2Mjk1MzRmZi4uMWRiZjQxZTggMTAwNjQ0Ci0tLSBh L3Rlcm0vdXNlcnMuYworKysgYi90ZXJtL3VzZXJzLmMKQEAgLTQ0NSw2ICs0NDUsMTEgQEAg U190ZXJtX29wZW5fY3R0eSAoc3RydWN0IHRyaXZmc19wcm90aWQgKmNyZWQsCiAgICAgICBp ZiAoIWVycikKIAl7CiAJICBzdHJ1Y3QgcHJvdGlkX2hvb2sgKmhvb2sgPSBtYWxsb2MgKHNp emVvZiAoc3RydWN0IHByb3RpZF9ob29rKSk7CisJICBpZiAoIWhvb2spCisJICAgIHsKKwkg ICAgICBwb3J0c19wb3J0X2RlcmVmIChuZXdjcmVkKTsKKwkgICAgICByZXR1cm4gRU5PTUVN OworCSAgICB9CiAKIAkgIGhvb2stPnBpZCA9IHBpZDsKIAkgIGhvb2stPnBncnAgPSBwZ3Jw OwpAQCAtMTkzOCw3ICsxOTQzLDE0IEBAIHRyaXZmc19TX2lvX2FzeW5jIChzdHJ1Y3QgdHJp dmZzX3Byb3RpZCAqY3JlZCwKICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrICgmZ2xvYmFs X2xvY2spOwogICAgICAgcmV0dXJuIEVCQURGOwogICAgIH0KKwogICBhciA9IG1hbGxvYyAo c2l6ZW9mIChzdHJ1Y3QgYXN5bmNfcmVxKSk7CisgIGlmICghYXIpCisgICAgeworICAgICAg cHRocmVhZF9tdXRleF91bmxvY2sgKCZnbG9iYWxfbG9jayk7CisgICAgICByZXR1cm4gRU5P TUVNOworICAgIH0KKwogICBhci0+bm90aWZ5ID0gbm90aWZ5OwogICBhci0+bmV4dCA9IGFz eW5jX3JlcXVlc3RzOwogICBhc3luY19yZXF1ZXN0cyA9IGFyOwpkaWZmIC0tZ2l0IGEvdHJh bnMvbWFnaWMuYyBiL3RyYW5zL21hZ2ljLmMKaW5kZXggNzNmZGFlYTMuLmQ3ZTQxNDZhIDEw MDY0NAotLS0gYS90cmFucy9tYWdpYy5jCisrKyBiL3RyYW5zL21hZ2ljLmMKQEAgLTQyNyw3 ICs0MjcsNyBAQCBwYXJzZV9vcHQgKGludCBvcHQsIGNoYXIgKmFyZywgc3RydWN0IGFyZ3Bf c3RhdGUgKnN0YXRlKQogCSAgdm9pZCAqYnVmID0gbW1hcCAoMCwgZ2V0cGFnZXNpemUgKCks IFBST1RfUkVBRHxQUk9UX1dSSVRFLAogCQkJICAgIE1BUF9BTk9OLCAwLCAwKTsKIAkgIGlm IChidWYgPT0gTUFQX0ZBSUxFRCkKLQkgICAgcmV0dXJuIGVycm5vOworCSAgICBhcmdwX2Zh aWx1cmUgKHN0YXRlLCBlcnJubywgMCwgIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkiKTsK IAkgIG0tPmRpcmJ1ZiA9IGJ1ZjsKIAkgIHN0cnVjdCBkaXJlbnQgKmQ7CiAJICBkID0gYWRk IChtLT5kaXJidWYsICIuIik7CkBAIC00NjIsNiArNDYyLDcgQEAgbWFpbiAoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogICBtYWNoX3BvcnRfdCBib290c3RyYXA7CiAgIHN0cnVjdCB0cml2 ZnNfY29udHJvbCAqZnN5czsKICAgc3RydWN0IG1hZ2ljICptID0gY2FsbG9jICgxLCBzaXpl b2YgKm0pOworICBhc3NlcnRfYmFja3RyYWNlIChtKTsKIAogICBhcmdwX3BhcnNlICgmYXJn cCwgYXJnYywgYXJndiwgMCwgMCwgbSk7CiAKZGlmZiAtLWdpdCBhL3RyYW5zL25ldy1maWZv LmMgYi90cmFucy9uZXctZmlmby5jCmluZGV4IDc4ODBlYjI0Li5lZThmNDgyMCAxMDA2NDQK LS0tIGEvdHJhbnMvbmV3LWZpZm8uYworKysgYi90cmFucy9uZXctZmlmby5jCkBAIC0xMDAs NiArMTAwLDcgQEAgc3RhdGljIHZvaWQKIGZpZm9fdHJhbnNfY3JlYXRlIChzdHJ1Y3QgZmlm b190cmFucyAqZnJvbSwgc3RydWN0IGZpZm9fdHJhbnMgKip0cmFucykKIHsKICAgc3RydWN0 IGZpZm9fdHJhbnMgKm5ldyA9IG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgZmlmb190cmFucykp OworICBhc3NlcnRfYmFja3RyYWNlIChuZXcpOwogCiAgIG5ldy0+c2VydmVyID0gMDsKICAg cHRocmVhZF9tdXRleF9pbml0ICgmbmV3LT5hY3RpdmVfZmlmb19sb2NrLCBOVUxMKTsKZGlm ZiAtLWdpdCBhL3RyYW5zL3JlbWFwLmMgYi90cmFucy9yZW1hcC5jCmluZGV4IDM5ZDZmZjky Li5iOTFmZTEwYiAxMDA2NDQKLS0tIGEvdHJhbnMvcmVtYXAuYworKysgYi90cmFucy9yZW1h cC5jCkBAIC0xMjQsNiArMTI0LDkgQEAgcGFyc2Vfb3B0IChpbnQga2V5LCBjaGFyICphcmcs IHN0cnVjdCBhcmdwX3N0YXRlICpzdGF0ZSkKIAl7CiAJICAvKiBTZWNvbmQgb2YgYSBwYWly ICovCiAJICBzdHJ1Y3QgcmVtYXAgKnJlbWFwID0gbWFsbG9jIChzaXplb2YgKCpyZW1hcCkp OworCSAgaWYgKCFyZW1hcCkKKwkgICAgYXJncF9mYWlsdXJlIChzdGF0ZSwgRU5PTUVNLCAw LCAiRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IiCisJCQkJCSAgICAiIHJlbWFwIik7 CiAJICByZW1hcC0+ZnJvbSA9IHJlbWFwX2Zyb207CiAJICByZW1hcC0+dG8gPSBzdHJkdXAg KGFyZyk7CiAJICByZW1hcC0+bmV4dCA9IHJlbWFwczsKZGlmZiAtLWdpdCBhL3V0aWxzL21z Z3BvcnQuYyBiL3V0aWxzL21zZ3BvcnQuYwppbmRleCBlM2VhNDMwMi4uNDViMmU4YmYgMTAw NjQ0Ci0tLSBhL3V0aWxzL21zZ3BvcnQuYworKysgYi91dGlscy9tc2dwb3J0LmMKQEAgLTU1 NSw2ICs1NTUsOCBAQCBhZGRfY21kIChjbWRfZnVuY190IGZ1bmMsIHNpemVfdCBtaW5hcmdz LCBzaXplX3QgbWF4YXJncywKICAgc3RydWN0IGNtZHNfYXJncF9wYXJhbXMgKnBhcmFtcyA9 IHN0YXRlLT5pbnB1dDsKICAgc2l6ZV90IG51bV9jbWRzID0gKnBhcmFtcy0+bnVtX2NtZHMg KyAxOwogICBjbWRfdCAqY21kcyA9IHJlYWxsb2MgKCpwYXJhbXMtPmNtZHMsIG51bV9jbWRz ICogc2l6ZW9mKGNtZF90KSk7CisgIGlmICghY21kcykKKyAgICByZXR1cm4gRU5PTUVNOwog CiAgICpwYXJhbXMtPmNtZHMgPSBjbWRzOwogICAqcGFyYW1zLT5udW1fY21kcyA9IG51bV9j bWRzOwpAQCAtNTY1LDYgKzU2NywxMiBAQCBhZGRfY21kIChjbWRfZnVuY190IGZ1bmMsIHNp emVfdCBtaW5hcmdzLCBzaXplX3QgbWF4YXJncywKICAgaWYgKG1heGFyZ3MpCiAgICAgewog ICAgICAgY21kLT5hcmdzID0gbWFsbG9jIChtYXhhcmdzICogc2l6ZW9mIChjaGFyICopKTsK KyAgICAgIGlmICghY21kLT5hcmdzKQorCXsKKwkgIGZyZWUgKGNtZHMpOworCSAgcmV0dXJu IEVOT01FTTsKKwl9CisKICAgICAgIGlmIChhcmcpCiAJY21kLT5hcmdzW2krK10gPSBhcmc7 CiAgICAgICB3aGlsZSAoaSA8IG1heGFyZ3MKQEAgLTU5Niw2ICs2MDQsOSBAQCBwYXJzZV9j bWRfb3B0IChpbnQga2V5LCBjaGFyICphcmcsIHN0cnVjdCBhcmdwX3N0YXRlICpzdGF0ZSkK ICAgICAgICAgICAgICByZS1wYXJzZSBpdCB3aXRoIDIgZGFzaGVzIHByZXBlbmRlZC4gKi8K IAkgIHNpemVfdCBsZW4gPSBzdHJsZW4gKGFyZykgKyAxOwogCSAgYXJnX2hhY2tfYnVmID0g cmVhbGxvYyAoYXJnX2hhY2tfYnVmLCAyICsgbGVuKTsKKwkgIGlmICghYXJnX2hhY2tfYnVm KQorCSAgICBhcmdwX2ZhaWx1cmUgKHN0YXRlLCBFTk9NRU0sIDAsICJGYWlsZWQgdG8gcmVh bGxvY2F0ZSBtZW1vcnkgZm9yIgorCQkJCQkgICAgIiBhcmdfaGFja19idWYiKTsKIAkgIHN0 YXRlLT5hcmd2Wy0tc3RhdGUtPm5leHRdID0gYXJnX2hhY2tfYnVmOwogCSAgc3RhdGUtPmFy Z3Zbc3RhdGUtPm5leHRdWzBdID0gJy0nOwogCSAgc3RhdGUtPmFyZ3Zbc3RhdGUtPm5leHRd WzFdID0gJy0nOwpkaWZmIC0tZ2l0IGEvdXRpbHMvcHMuYyBiL3V0aWxzL3BzLmMKaW5kZXgg NmEwOGY3MzYuLjE0ZGFjOGRiIDEwMDY0NAotLS0gYS91dGlscy9wcy5jCisrKyBiL3V0aWxz L3BzLmMKQEAgLTI3Niw2ICsyNzYsOCBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CiAJICAgIHsKIAkgICAgICBzaXplX3QgbGVuID0gc3RybGVuIChhcmcpICsgMTsKIAkgICAg ICBhcmdfaGFja19idWYgPSByZWFsbG9jIChhcmdfaGFja19idWYsIDEgKyBsZW4pOworCSAg ICAgIGlmICghYXJnX2hhY2tfYnVmKQorCQlyZXR1cm4gRU5PTUVNOwogCSAgICAgIHN0YXRl LT5hcmd2Wy0tc3RhdGUtPm5leHRdID0gYXJnX2hhY2tfYnVmOwogCSAgICAgIHN0YXRlLT5h cmd2W3N0YXRlLT5uZXh0XVswXSA9ICctJzsKIAkgICAgICBtZW1jcHkgKCZzdGF0ZS0+YXJn dltzdGF0ZS0+bmV4dF1bMV0sIGFyZywgbGVuKTsKZGlmZiAtLWdpdCBhL3V0aWxzL3NldHRy YW5zLmMgYi91dGlscy9zZXR0cmFucy5jCmluZGV4IDE2MjJmNzA4Li4xNDA3NTA0ZCAxMDA2 NDQKLS0tIGEvdXRpbHMvc2V0dHJhbnMuYworKysgYi91dGlscy9zZXR0cmFucy5jCkBAIC0x MjEsNyArMTIxLDcgQEAgZ2V0X2NyZWRlbnRpYWxzICh2b2lkKQogICAgIHJldHVybiBlcnJu bzsKIAogICBnaWRzID0gbWFsbG9jIChnaWRzX2xlbiAqIHNpemVvZiAoZ2lkX3QpKTsKLSAg aWYgKCEgdWlkcykKKyAgaWYgKCEgZ2lkcykKICAgICByZXR1cm4gRU5PTUVNOwogCiAgIGdp ZHNfbGVuID0gZ2V0Z3JvdXBzIChnaWRzX2xlbiwgZ2lkcyk7Ci0tIAoyLjQzLjAKCg== --------------sZiUZ1CmC3fOTmf8puv1Fmbs--