Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753133AbdHXSNF (ORCPT ); Thu, 24 Aug 2017 14:13:05 -0400 Received: from mail-oi0-f54.google.com ([209.85.218.54]:35163 "EHLO mail-oi0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751886AbdHXSND (ORCPT ); Thu, 24 Aug 2017 14:13:03 -0400 MIME-Version: 1.0 In-Reply-To: References: <20170816171211.4021-1-christian.brauner@ubuntu.com> <20170816194805.hnof3aqiqykwki7p@gmail.com> <87pobvruzt.fsf@xmission.com> <87ziazqdfr.fsf@xmission.com> <20170824022436.44adb497@mir> <87378hhi3y.fsf@xmission.com> <87wp5tfynr.fsf@xmission.com> <20170824062432.1e05e6f8@mir> <874lsxezal.fsf@xmission.com> From: Linus Torvalds Date: Thu, 24 Aug 2017 11:13:02 -0700 X-Google-Sender-Auth: j2X4N0ATMXl-gfpHZq8hqU3kJH8 Message-ID: Subject: Re: [PATCH 0/1] devpts: use dynamic_dname() to generate proc name To: "Eric W. Biederman" Cc: Stefan Lippers-Hollmann , Christian Brauner , Christian Brauner , Linux Kernel Mailing List , "Serge E. Hallyn" , Al Viro , Thorsten Leemhuis Content-Type: multipart/mixed; boundary="001a1140c8047d270d055783c7a4" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 10750 Lines: 158 --001a1140c8047d270d055783c7a4 Content-Type: text/plain; charset="UTF-8" On Thu, Aug 24, 2017 at 11:06 AM, Linus Torvalds wrote: > > But that still fails the TIOCGPTPEER ioctl with an NULL pointer > dereference in devpts_mnt, I probably messed up when I fixed the > dentry refcount leak. No, that was another bug in the original patch. ptm_open_peer() passed in 'filp' to devpts_mnt(), but it should obviously pass in the 'master' one. filp is NULL at that point. The attached patch should work. It's Eric's original patch with various cleanups and fixes. Linus --001a1140c8047d270d055783c7a4 Content-Type: text/plain; charset="US-ASCII"; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j6qrnh6c0 IGRyaXZlcnMvdHR5L3B0eS5jICAgICAgICAgfCA2NCArKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy90dHkvdHR5X2lvLmMgICAgICB8ICAzICsr KwogZnMvZGV2cHRzL2lub2RlLmMgICAgICAgICB8IDYzICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0KIGluY2x1ZGUvbGludXgvZGV2cHRzX2ZzLmggfCAxMCAr KysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9wdHkuYyBiL2RyaXZlcnMvdHR5L3B0eS5jCmlu ZGV4IDI4NDc0OWZiMGY2Yi4uYmZkNjZmY2ZmN2EzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3R0eS9w dHkuYworKysgYi9kcml2ZXJzL3R0eS9wdHkuYwpAQCAtNjksMTMgKzY5LDggQEAgc3RhdGljIHZv aWQgcHR5X2Nsb3NlKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHN0cnVjdCBmaWxlICpmaWxwKQog I2lmZGVmIENPTkZJR19VTklYOThfUFRZUwogCQlpZiAodHR5LT5kcml2ZXIgPT0gcHRtX2RyaXZl cikgewogCQkJbXV0ZXhfbG9jaygmZGV2cHRzX211dGV4KTsKLQkJCWlmICh0dHktPmxpbmstPmRy aXZlcl9kYXRhKSB7Ci0JCQkJc3RydWN0IHBhdGggKnBhdGggPSB0dHktPmxpbmstPmRyaXZlcl9k YXRhOwotCi0JCQkJZGV2cHRzX3B0eV9raWxsKHBhdGgtPmRlbnRyeSk7Ci0JCQkJcGF0aF9wdXQo cGF0aCk7Ci0JCQkJa2ZyZWUocGF0aCk7Ci0JCQl9CisJCQlpZiAodHR5LT5saW5rLT5kcml2ZXJf ZGF0YSkKKwkJCQlkZXZwdHNfcHR5X2tpbGwodHR5LT5saW5rLT5kcml2ZXJfZGF0YSk7CiAJCQlt dXRleF91bmxvY2soJmRldnB0c19tdXRleCk7CiAJCX0KICNlbmRpZgpAQCAtNjA3LDI1ICs2MDIs MjQgQEAgc3RhdGljIGlubGluZSB2b2lkIGxlZ2FjeV9wdHlfaW5pdCh2b2lkKSB7IH0KIHN0YXRp YyBzdHJ1Y3QgY2RldiBwdG14X2NkZXY7CiAKIC8qKgotICoJcHR5X29wZW5fcGVlciAtIG9wZW4g dGhlIHBlZXIgb2YgYSBwdHkKLSAqCUB0dHk6IHRoZSBwZWVyIG9mIHRoZSBwdHkgYmVpbmcgb3Bl bmVkCisgKglwdG1fb3Blbl9wZWVyIC0gb3BlbiB0aGUgcGVlciBvZiBhIHB0eQorICoJQG1hc3Rl cjogdGhlIG9wZW4gc3RydWN0IGZpbGUgb2YgdGhlIHB0bXggZGV2aWNlIG5vZGUKKyAqCUB0dHk6 IHRoZSBtYXN0ZXIgb2YgdGhlIHB0eSBiZWluZyBvcGVuZWQKKyAqCUBmbGFnczogdGhlIGZsYWdz IGZvciBvcGVuCiAgKgotICoJT3BlbiB0aGUgY2FjaGVkIGRlbnRyeSBpbiB0dHktPmxpbmssIHBy b3ZpZGluZyBhIHNhZmUgd2F5IGZvciB1c2Vyc3BhY2UKLSAqCXRvIGdldCB0aGUgc2xhdmUgZW5k IG9mIGEgcHR5ICh3aGVyZSB0aGV5IGhhdmUgdGhlIG1hc3RlciBmZCBhbmQgY2Fubm90Ci0gKglh Y2Nlc3Mgb3IgdHJ1c3QgdGhlIG1vdW50IG5hbWVzcGFjZSAvZGV2L3B0cyB3YXMgbW91bnRlZCBp bnNpZGUpLgorICoJUHJvdmlkZSBhIHJhY2UgZnJlZSB3YXkgZm9yIHVzZXJzcGFjZSB0byBvcGVu IHRoZSBzbGF2ZSBlbmQgb2YgYSBwdHkKKyAqCSh3aGVyZSB0aGV5IGhhdmUgdGhlIG1hc3RlciBm ZCBhbmQgY2Fubm90IGFjY2VzcyBvciB0cnVzdCB0aGUgbW91bnQKKyAqCW5hbWVzcGFjZSAvZGV2 L3B0cyB3YXMgbW91bnRlZCBpbnNpZGUpLgogICovCi1zdGF0aWMgc3RydWN0IGZpbGUgKnB0eV9v cGVuX3BlZXIoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IGZsYWdzKQotewotCWlmICh0dHkt PmRyaXZlci0+c3VidHlwZSAhPSBQVFlfVFlQRV9NQVNURVIpCi0JCXJldHVybiBFUlJfUFRSKC1F SU8pOwotCXJldHVybiBkZW50cnlfb3Blbih0dHktPmxpbmstPmRyaXZlcl9kYXRhLCBmbGFncywg Y3VycmVudF9jcmVkKCkpOwotfQotCi1zdGF0aWMgaW50IHB0eV9nZXRfcGVlcihzdHJ1Y3QgdHR5 X3N0cnVjdCAqdHR5LCBpbnQgZmxhZ3MpCitpbnQgcHRtX29wZW5fcGVlcihzdHJ1Y3QgZmlsZSAq bWFzdGVyLCBzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgZmxhZ3MpCiB7CiAJaW50IGZkID0g LTE7Ci0Jc3RydWN0IGZpbGUgKmZpbHAgPSBOVUxMOworCXN0cnVjdCBmaWxlICpmaWxwOwogCWlu dCByZXR2YWwgPSAtRUlOVkFMOworCXN0cnVjdCBwYXRoIHBhdGg7CisKKwlpZiAodHR5LT5kcml2 ZXIgIT0gcHRtX2RyaXZlcikKKwkJcmV0dXJuIC1FSU87CiAKIAlmZCA9IGdldF91bnVzZWRfZmRf ZmxhZ3MoMCk7CiAJaWYgKGZkIDwgMCkgewpAQCAtNjMzLDcgKzYyNywxNiBAQCBzdGF0aWMgaW50 IHB0eV9nZXRfcGVlcihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgZmxhZ3MpCiAJCWdvdG8g ZXJyOwogCX0KIAotCWZpbHAgPSBwdHlfb3Blbl9wZWVyKHR0eSwgZmxhZ3MpOworCS8qIENvbXB1 dGUgdGhlIHNsYXZlJ3MgcGF0aCAqLworCXBhdGgubW50ID0gZGV2cHRzX21udChtYXN0ZXIpOwor CWlmIChJU19FUlIocGF0aC5tbnQpKSB7CisJCXJldHZhbCA9IFBUUl9FUlIocGF0aC5tbnQpOwor CQlnb3RvIGVycl9wdXQ7CisJfQorCXBhdGguZGVudHJ5ID0gdHR5LT5saW5rLT5kcml2ZXJfZGF0 YTsKKworCWZpbHAgPSBkZW50cnlfb3BlbigmcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsK KwltbnRwdXQocGF0aC5tbnQpOwogCWlmIChJU19FUlIoZmlscCkpIHsKIAkJcmV0dmFsID0gUFRS X0VSUihmaWxwKTsKIAkJZ290byBlcnJfcHV0OwpAQCAtNjYyLDggKzY2NSw2IEBAIHN0YXRpYyBp bnQgcHR5X3VuaXg5OF9pb2N0bChzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LAogCQlyZXR1cm4gcHR5 X2dldF9wa3Rtb2RlKHR0eSwgKGludCBfX3VzZXIgKilhcmcpOwogCWNhc2UgVElPQ0dQVE46IC8q IEdldCBQVCBOdW1iZXIgKi8KIAkJcmV0dXJuIHB1dF91c2VyKHR0eS0+aW5kZXgsICh1bnNpZ25l ZCBpbnQgX191c2VyICopYXJnKTsKLQljYXNlIFRJT0NHUFRQRUVSOiAvKiBPcGVuIHRoZSBvdGhl ciBlbmQgKi8KLQkJcmV0dXJuIHB0eV9nZXRfcGVlcih0dHksIChpbnQpIGFyZyk7CiAJY2FzZSBU SU9DU0lHOiAgICAvKiBTZW5kIHNpZ25hbCB0byBvdGhlciBzaWRlIG9mIHB0eSAqLwogCQlyZXR1 cm4gcHR5X3NpZ25hbCh0dHksIChpbnQpIGFyZyk7CiAJfQpAQCAtNzkxLDcgKzc5Miw2IEBAIHN0 YXRpYyBpbnQgcHRteF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxw KQogewogCXN0cnVjdCBwdHNfZnNfaW5mbyAqZnNpOwogCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7 Ci0Jc3RydWN0IHBhdGggKnB0c19wYXRoOwogCXN0cnVjdCBkZW50cnkgKmRlbnRyeTsKIAlpbnQg cmV0dmFsOwogCWludCBpbmRleDsKQEAgLTg0NSwyNiArODQ1LDE2IEBAIHN0YXRpYyBpbnQgcHRt eF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogCQlyZXR2YWwg PSBQVFJfRVJSKGRlbnRyeSk7CiAJCWdvdG8gZXJyX3JlbGVhc2U7CiAJfQotCS8qIFdlIG5lZWQg dG8gY2FjaGUgYSBmYWtlIHBhdGggZm9yIFRJT0NHUFRQRUVSLiAqLwotCXB0c19wYXRoID0ga21h bGxvYyhzaXplb2Yoc3RydWN0IHBhdGgpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXB0c19wYXRoKQot CQlnb3RvIGVycl9yZWxlYXNlOwotCXB0c19wYXRoLT5tbnQgPSBmaWxwLT5mX3BhdGgubW50Owot CXB0c19wYXRoLT5kZW50cnkgPSBkZW50cnk7Ci0JcGF0aF9nZXQocHRzX3BhdGgpOwotCXR0eS0+ bGluay0+ZHJpdmVyX2RhdGEgPSBwdHNfcGF0aDsKKwl0dHktPmxpbmstPmRyaXZlcl9kYXRhID0g ZGVudHJ5OwogCiAJcmV0dmFsID0gcHRtX2RyaXZlci0+b3BzLT5vcGVuKHR0eSwgZmlscCk7CiAJ aWYgKHJldHZhbCkKLQkJZ290byBlcnJfcGF0aF9wdXQ7CisJCWdvdG8gZXJyX3JlbGVhc2U7CiAK IAl0dHlfZGVidWdfaGFuZ3VwKHR0eSwgIm9wZW5pbmcgKGNvdW50PSVkKVxuIiwgdHR5LT5jb3Vu dCk7CiAKIAl0dHlfdW5sb2NrKHR0eSk7CiAJcmV0dXJuIDA7Ci1lcnJfcGF0aF9wdXQ6Ci0JcGF0 aF9wdXQocHRzX3BhdGgpOwotCWtmcmVlKHB0c19wYXRoKTsKIGVycl9yZWxlYXNlOgogCXR0eV91 bmxvY2sodHR5KTsKIAkvLyBUaGlzIHdpbGwgYWxzbyBwdXQtcmVmIHRoZSBmc2kKZGlmZiAtLWdp dCBhL2RyaXZlcnMvdHR5L3R0eV9pby5jIGIvZHJpdmVycy90dHkvdHR5X2lvLmMKaW5kZXggOTc0 YjEzZDI0NDAxLi5iYTMzNzE0NDlhNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdHR5L3R0eV9pby5j CisrKyBiL2RyaXZlcnMvdHR5L3R0eV9pby5jCkBAIC0yNTE4LDYgKzI1MTgsOSBAQCBsb25nIHR0 eV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9u ZyBhcmcpCiAJY2FzZSBUSU9DU1NFUklBTDoKIAkJdHR5X3dhcm5fZGVwcmVjYXRlZF9mbGFncyhw KTsKIAkJYnJlYWs7CisJY2FzZSBUSU9DR1BUUEVFUjoKKwkJcmV0dmFsID0gcHRtX29wZW5fcGVl cihmaWxlLCB0dHksIChpbnQpYXJnKTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dmFsID0g dHR5X2pvYmN0cmxfaW9jdGwodHR5LCByZWFsX3R0eSwgZmlsZSwgY21kLCBhcmcpOwogCQlpZiAo cmV0dmFsICE9IC1FTk9JT0NUTENNRCkKZGlmZiAtLWdpdCBhL2ZzL2RldnB0cy9pbm9kZS5jIGIv ZnMvZGV2cHRzL2lub2RlLmMKaW5kZXggMTA4ZGYyZTM2MDJjLi44ZWQxMDVhMjJkZTMgMTAwNjQ0 Ci0tLSBhL2ZzL2RldnB0cy9pbm9kZS5jCisrKyBiL2ZzL2RldnB0cy9pbm9kZS5jCkBAIC0xMzMs NiArMTMzLDQ4IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHB0c19mc19pbmZvICpERVZQVFNfU0Io c3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAlyZXR1cm4gc2ItPnNfZnNfaW5mbzsKIH0KIAorc3Rh dGljIGludCBkZXZwdHNfcHRteF9wYXRoKHN0cnVjdCBwYXRoICpwYXRoKQoreworCWludCBlcnI7 CisJc3RydWN0IHN1cGVyX2Jsb2NrICpzYjsKKworCS8qIEhhcyB0aGUgZGV2cHRzIGZpbGVzeXN0 ZW0gYWxyZWFkeSBiZWVuIGZvdW5kPyAqLworCXNiID0gcGF0aC0+bW50LT5tbnRfc2I7CisJaWYg KHNiLT5zX21hZ2ljID09IERFVlBUU19TVVBFUl9NQUdJQykKKwkJcmV0dXJuIDA7CisKKwkvKiBJ cyBhIGRldnB0cyBmaWxlc3lzdGVtIGF0ICJwdHMiIGluIHRoZSBzYW1lIGRpcmVjdG9yeT8gKi8K KwllcnIgPSBwYXRoX3B0cyhwYXRoKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJc2Ig PSBwYXRoLT5tbnQtPm1udF9zYjsKKworCS8qIElzIHRoZSBwYXRoIHRoZSByb290IG9mIGEgZGV2 cHRzIGZpbGVzeXN0ZW0/ICovCisJaWYgKChzYi0+c19tYWdpYyAhPSBERVZQVFNfU1VQRVJfTUFH SUMpIHx8CisJICAgIChwYXRoLT5tbnQtPm1udF9yb290ICE9IHNiLT5zX3Jvb3QpKQorCQlyZXR1 cm4gLUVOT0RFVjsKKworCXJldHVybiAwOworfQorCitzdHJ1Y3QgdmZzbW91bnQgKmRldnB0c19t bnQoc3RydWN0IGZpbGUgKmZpbHApCit7CisJc3RydWN0IHBhdGggcGF0aDsKKwlpbnQgZXJyOwor CisJcGF0aCA9IGZpbHAtPmZfcGF0aDsKKwlwYXRoX2dldCgmcGF0aCk7CisKKwllcnIgPSBkZXZw dHNfcHRteF9wYXRoKCZwYXRoKTsKKwlpZiAoZXJyKSB7CisJCW1udHB1dChwYXRoLm1udCk7CisJ CXBhdGgubW50ID0gRVJSX1BUUihlcnIpOworCX0KKwlkcHV0KHBhdGguZGVudHJ5KTsKKwlyZXR1 cm4gcGF0aC5tbnQ7Cit9CisKIHN0cnVjdCBwdHNfZnNfaW5mbyAqZGV2cHRzX2FjcXVpcmUoc3Ry dWN0IGZpbGUgKmZpbHApCiB7CiAJc3RydWN0IHB0c19mc19pbmZvICpyZXN1bHQ7CkBAIC0xNDMs MjcgKzE4NSwxNiBAQCBzdHJ1Y3QgcHRzX2ZzX2luZm8gKmRldnB0c19hY3F1aXJlKHN0cnVjdCBm aWxlICpmaWxwKQogCXBhdGggPSBmaWxwLT5mX3BhdGg7CiAJcGF0aF9nZXQoJnBhdGgpOwogCi0J LyogSGFzIHRoZSBkZXZwdHMgZmlsZXN5c3RlbSBhbHJlYWR5IGJlZW4gZm91bmQ/ICovCi0Jc2Ig PSBwYXRoLm1udC0+bW50X3NiOwotCWlmIChzYi0+c19tYWdpYyAhPSBERVZQVFNfU1VQRVJfTUFH SUMpIHsKLQkJLyogSXMgYSBkZXZwdHMgZmlsZXN5c3RlbSBhdCAicHRzIiBpbiB0aGUgc2FtZSBk aXJlY3Rvcnk/ICovCi0JCWVyciA9IHBhdGhfcHRzKCZwYXRoKTsKLQkJaWYgKGVycikgewotCQkJ cmVzdWx0ID0gRVJSX1BUUihlcnIpOwotCQkJZ290byBvdXQ7Ci0JCX0KLQotCQkvKiBJcyB0aGUg cGF0aCB0aGUgcm9vdCBvZiBhIGRldnB0cyBmaWxlc3lzdGVtPyAqLwotCQlyZXN1bHQgPSBFUlJf UFRSKC1FTk9ERVYpOwotCQlzYiA9IHBhdGgubW50LT5tbnRfc2I7Ci0JCWlmICgoc2ItPnNfbWFn aWMgIT0gREVWUFRTX1NVUEVSX01BR0lDKSB8fAotCQkgICAgKHBhdGgubW50LT5tbnRfcm9vdCAh PSBzYi0+c19yb290KSkKLQkJCWdvdG8gb3V0OworCWVyciA9IGRldnB0c19wdG14X3BhdGgoJnBh dGgpOworCWlmIChlcnIpIHsKKwkJcmVzdWx0ID0gRVJSX1BUUihlcnIpOworCQlnb3RvIG91dDsK IAl9CiAKIAkvKgogCSAqIHB0eSBjb2RlIG5lZWRzIHRvIGhvbGQgZXh0cmEgcmVmZXJlbmNlcyBp biBjYXNlIG9mIGxhc3QgL2Rldi90dHkgY2xvc2UKIAkgKi8KKwlzYiA9IHBhdGgubW50LT5tbnRf c2I7CiAJYXRvbWljX2luYygmc2ItPnNfYWN0aXZlKTsKIAlyZXN1bHQgPSBERVZQVFNfU0Ioc2Ip OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RldnB0c19mcy5oIGIvaW5jbHVkZS9saW51 eC9kZXZwdHNfZnMuaAppbmRleCAyNzdhYjlhZjlhYzIuLmUyN2M1NDhhY2ZiMCAxMDA2NDQKLS0t IGEvaW5jbHVkZS9saW51eC9kZXZwdHNfZnMuaAorKysgYi9pbmNsdWRlL2xpbnV4L2RldnB0c19m cy5oCkBAIC0xOSw2ICsxOSw3IEBACiAKIHN0cnVjdCBwdHNfZnNfaW5mbzsKIAorc3RydWN0IHZm c21vdW50ICpkZXZwdHNfbW50KHN0cnVjdCBmaWxlICopOwogc3RydWN0IHB0c19mc19pbmZvICpk ZXZwdHNfYWNxdWlyZShzdHJ1Y3QgZmlsZSAqKTsKIHZvaWQgZGV2cHRzX3JlbGVhc2Uoc3RydWN0 IHB0c19mc19pbmZvICopOwogCkBAIC0zMiw2ICszMywxNSBAQCB2b2lkICpkZXZwdHNfZ2V0X3By aXYoc3RydWN0IGRlbnRyeSAqKTsKIC8qIHVubGluayAqLwogdm9pZCBkZXZwdHNfcHR5X2tpbGwo c3RydWN0IGRlbnRyeSAqKTsKIAorLyogaW4gcHR5LmMgKi8KK2ludCBwdG1fb3Blbl9wZWVyKHN0 cnVjdCBmaWxlICptYXN0ZXIsIHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGludCBmbGFncyk7CisK KyNlbHNlCitzdGF0aWMgaW5saW5lIGludAorcHRtX29wZW5fcGVlcihzdHJ1Y3QgZmlsZSAqbWFz dGVyLCBzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIC1FSU87 Cit9CiAjZW5kaWYKIAogCg== --001a1140c8047d270d055783c7a4--