Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: usbip: usbip_host: fix NULL-ptr deref and use-after-free errors From: Shuah Khan Message-Id: <20180515024958.3961-1-shuah@kernel.org> Date: Mon, 14 May 2018 20:49:58 -0600 To: valentina.manea.m@gmail.com, shuah@kernel.org, gregkh@linuxfoundation.org Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: dXNiaXBfaG9zdCB1cGRhdGVzIGRldmljZSBzdGF0dXMgd2l0aG91dCBob2xkaW5nIGxvY2sgZnJv bSBzdHViIHByb2JlLApkaXNjb25uZWN0IGFuZCByZWJpbmQgY29kZSBwYXRocy4gV2hlbiBtdWx0 aXBsZSByZXF1ZXN0cyB0byBpbXBvcnQgYQpkZXZpY2UgYXJlIHJlY2VpdmVkLCB0aGVzZSB1bnBy b3RlY3RlZCBjb2RlIHBhdGhzIHN0ZXAgYWxsIG92ZXIgZWFjaApvdGhlciBhbmQgZHJpdmUgZmFp bHMgd2l0aCBOVUxMLXB0ciBkZXJlZiBhbmQgdXNlLWFmdGVyLWZyZWUgZXJyb3JzLgoKVGhlIGRy aXZlciB1c2VzIGEgdGFibGUgbG9jayB0byBwcm90ZWN0IHRoZSBidXNpZCBhcnJheSBmb3IgYWRk aW5nIGFuZApkZWxldGluZyBidXNpZHMgdG8gdGhlIHRhYmxlLiBIb3dldmVyLCB0aGUgcHJvYmUs IGRpc2Nvbm5lY3QgYW5kIHJlYmluZApwYXRocyBnZXQgdGhlIGJ1c2lkIHRhYmxlIGVudHJ5IGFu ZCB1cGRhdGUgdGhlIHN0YXR1cyB3aXRob3V0IGhvbGRpbmcKdGhlIGJ1c2lkIHRhYmxlIGxvY2su IEFkZCBhIG5ldyBmaW5lciBncmFpbiBsb2NrIHRvIHByb3RlY3QgdGhlIGJ1c2lkCmVudHJ5LiBU aGlzIG5ldyBsb2NrIHdpbGwgYmUgaGVsZCB0byBzZWFyY2ggYW5kIHVwZGF0ZSB0aGUgYnVzaWQg ZW50cnkKZmllbGRzIGZyb20gZ2V0X2J1c2lkX2lkeCgpLCBhZGRfbWF0Y2hfYnVzaWQoKSBhbmQg ZGVsX21hdGNoX2J1c2lkKCkuCgptYXRjaF9idXNpZF9zaG93KCkgZG9lcyB0aGUgc2FtZSB0byBh Y2Nlc3MgdGhlIGJ1c2lkIGVudHJ5IGZpZWxkcy4KCmdldF9idXNpZF9wcml2KCkgY2hhbmdlZCB0 byByZXR1cm4gdGhlIHBvaW50ZXIgdG8gdGhlIGJ1c2lkIGVudHJ5IGhvbGRpbmcKdGhlIGJ1c2lk IGxvY2suIHN0dWJfcHJvYmUoKSwgc3R1Yl9kaXNjb25uZWN0KCkgYW5kIHN0dWJfZGV2aWNlX3Jl YmluZCgpCmNhbGwgcHV0X2J1c2lkX3ByaXYoKSB0byByZWxlYXNlIHRoZSBidXNpZCBsb2NrIGJl Zm9yZSByZXR1cm5pbmcuIFRoaXMKY2hhbmdlcyBmaXhlcyB0aGUgdW5wcm90ZWN0ZWQgY29kZSBw YXRocyBlbGltaW5hdGluZyB0aGUgcmFjZSBjb25kaXRpb25zCmluIHVwZGF0aW5nIHRoZSBidXNp ZCBlbnRyaWVzLgoKU2lnbmVkLW9mZi1ieTogU2h1YWggS2hhbiAoU2Ftc3VuZyBPU0cpIDxzaHVh aEBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvdXNiL3VzYmlwL3N0dWIuaCAgICAgIHwgIDIgKysK IGRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfZGV2LmMgIHwgMzMgKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tCiBkcml2ZXJzL3VzYi91c2JpcC9zdHViX21haW4uYyB8IDQwICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNjAgaW5z ZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNi aXAvc3R1Yi5oIGIvZHJpdmVycy91c2IvdXNiaXAvc3R1Yi5oCmluZGV4IDE0YTcyMzU3ODAwYS4u MzU2MThjZWIyNzkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi91c2JpcC9zdHViLmgKKysrIGIv ZHJpdmVycy91c2IvdXNiaXAvc3R1Yi5oCkBAIC03Myw2ICs3Myw3IEBAIHN0cnVjdCBidXNfaWRf cHJpdiB7CiAJc3RydWN0IHN0dWJfZGV2aWNlICpzZGV2OwogCXN0cnVjdCB1c2JfZGV2aWNlICp1 ZGV2OwogCWNoYXIgc2h1dGRvd25fYnVzaWQ7CisJc3BpbmxvY2tfdCBidXNpZF9sb2NrOwogfTsK IAogLyogc3R1Yl9wcml2IGlzIGFsbG9jYXRlZCBmcm9tIHN0dWJfcHJpdl9jYWNoZSAqLwpAQCAt ODMsNiArODQsNyBAQCBleHRlcm4gc3RydWN0IHVzYl9kZXZpY2VfZHJpdmVyIHN0dWJfZHJpdmVy OwogCiAvKiBzdHViX21haW4uYyAqLwogc3RydWN0IGJ1c19pZF9wcml2ICpnZXRfYnVzaWRfcHJp dihjb25zdCBjaGFyICpidXNpZCk7Cit2b2lkIHB1dF9idXNpZF9wcml2KHN0cnVjdCBidXNfaWRf cHJpdiAqYmlkKTsKIGludCBkZWxfbWF0Y2hfYnVzaWQoY2hhciAqYnVzaWQpOwogdm9pZCBzdHVi X2RldmljZV9jbGVhbnVwX3VyYnMoc3RydWN0IHN0dWJfZGV2aWNlICpzZGV2KTsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYyBiL2RyaXZlcnMvdXNiL3VzYmlwL3N0 dWJfZGV2LmMKaW5kZXggOWQwNDI1MTEzYzRiLi5jMGQ2ZmYxYmFhNzIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdXNiL3VzYmlwL3N0dWJfZGV2LmMKKysrIGIvZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9k ZXYuYwpAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBpbnQgc3R1Yl9wcm9iZShzdHJ1Y3QgdXNi X2RldmljZSAqdWRldikKIAlzdHJ1Y3Qgc3R1Yl9kZXZpY2UgKnNkZXYgPSBOVUxMOwogCWNvbnN0 IGNoYXIgKnVkZXZfYnVzaWQgPSBkZXZfbmFtZSgmdWRldi0+ZGV2KTsKIAlzdHJ1Y3QgYnVzX2lk X3ByaXYgKmJ1c2lkX3ByaXY7Ci0JaW50IHJjOworCWludCByYyA9IDA7CiAKIAlkZXZfZGJnKCZ1 ZGV2LT5kZXYsICJFbnRlciBwcm9iZVxuIik7CiAKQEAgLTMxNywxMyArMzE3LDE1IEBAIHN0YXRp YyBpbnQgc3R1Yl9wcm9iZShzdHJ1Y3QgdXNiX2RldmljZSAqdWRldikKIAkJICogb3RoZXIgbWF0 Y2hlZCBkcml2ZXJzIGJ5IHRoZSBkcml2ZXIgY29yZS4KIAkJICogU2VlIGRyaXZlcl9wcm9iZV9k ZXZpY2UoKSBpbiBkcml2ZXIvYmFzZS9kZC5jCiAJCSAqLwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJ cmMgPSAtRU5PREVWOworCQlnb3RvIGNhbGxfcHV0X2J1c2lkX3ByaXY7CiAJfQogCiAJaWYgKHVk ZXYtPmRlc2NyaXB0b3IuYkRldmljZUNsYXNzID09IFVTQl9DTEFTU19IVUIpIHsKIAkJZGV2X2Ri ZygmdWRldi0+ZGV2LCAiJXMgaXMgYSB1c2IgaHViIGRldmljZS4uLiBza2lwIVxuIiwKIAkJCSB1 ZGV2X2J1c2lkKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCXJjID0gLUVOT0RFVjsKKwkJZ290byBj YWxsX3B1dF9idXNpZF9wcml2OwogCX0KIAogCWlmICghc3RyY21wKHVkZXYtPmJ1cy0+YnVzX25h bWUsICJ2aGNpX2hjZCIpKSB7CkBAIC0zMzEsMTMgKzMzMywxNiBAQCBzdGF0aWMgaW50IHN0dWJf cHJvYmUoc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYpCiAJCQkiJXMgaXMgYXR0YWNoZWQgb24gdmhj aV9oY2QuLi4gc2tpcCFcbiIsCiAJCQl1ZGV2X2J1c2lkKTsKIAotCQlyZXR1cm4gLUVOT0RFVjsK KwkJcmMgPSAtRU5PREVWOworCQlnb3RvIGNhbGxfcHV0X2J1c2lkX3ByaXY7CiAJfQogCiAJLyog b2ssIHRoaXMgaXMgbXkgZGV2aWNlICovCiAJc2RldiA9IHN0dWJfZGV2aWNlX2FsbG9jKHVkZXYp OwotCWlmICghc2RldikKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKCFzZGV2KSB7CisJCXJjID0g LUVOT01FTTsKKwkJZ290byBjYWxsX3B1dF9idXNpZF9wcml2OworCX0KIAogCWRldl9pbmZvKCZ1 ZGV2LT5kZXYsCiAJCSJ1c2JpcC1ob3N0OiByZWdpc3RlciBuZXcgZGV2aWNlIChidXMgJXUgZGV2 ICV1KVxuIiwKQEAgLTM2OSw3ICszNzQsOSBAQCBzdGF0aWMgaW50IHN0dWJfcHJvYmUoc3RydWN0 IHVzYl9kZXZpY2UgKnVkZXYpCiAJfQogCWJ1c2lkX3ByaXYtPnN0YXR1cyA9IFNUVUJfQlVTSURf QUxMT0M7CiAKLQlyZXR1cm4gMDsKKwlyYyA9IDA7CisJZ290byBjYWxsX3B1dF9idXNpZF9wcml2 OworCiBlcnJfZmlsZXM6CiAJdXNiX2h1Yl9yZWxlYXNlX3BvcnQodWRldi0+cGFyZW50LCB1ZGV2 LT5wb3J0bnVtLAogCQkJICAgICAoc3RydWN0IHVzYl9kZXZfc3RhdGUgKikgdWRldik7CkBAIC0z NzksNiArMzg2LDkgQEAgc3RhdGljIGludCBzdHViX3Byb2JlKHN0cnVjdCB1c2JfZGV2aWNlICp1 ZGV2KQogCiAJYnVzaWRfcHJpdi0+c2RldiA9IE5VTEw7CiAJc3R1Yl9kZXZpY2VfZnJlZShzZGV2 KTsKKworY2FsbF9wdXRfYnVzaWRfcHJpdjoKKwlwdXRfYnVzaWRfcHJpdihidXNpZF9wcml2KTsK IAlyZXR1cm4gcmM7CiB9CiAKQEAgLTQxNyw3ICs0MjcsNyBAQCBzdGF0aWMgdm9pZCBzdHViX2Rp c2Nvbm5lY3Qoc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYpCiAJLyogZ2V0IHN0dWJfZGV2aWNlICov CiAJaWYgKCFzZGV2KSB7CiAJCWRldl9lcnIoJnVkZXYtPmRldiwgImNvdWxkIG5vdCBnZXQgZGV2 aWNlIik7Ci0JCXJldHVybjsKKwkJZ290byBjYWxsX3B1dF9idXNpZF9wcml2OwogCX0KIAogCWRl dl9zZXRfZHJ2ZGF0YSgmdWRldi0+ZGV2LCBOVUxMKTsKQEAgLTQzMiwxMiArNDQyLDEyIEBAIHN0 YXRpYyB2b2lkIHN0dWJfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2RldmljZSAqdWRldikKIAkJCQkg IChzdHJ1Y3QgdXNiX2Rldl9zdGF0ZSAqKSB1ZGV2KTsKIAlpZiAocmMpIHsKIAkJZGV2X2RiZygm dWRldi0+ZGV2LCAidW5hYmxlIHRvIHJlbGVhc2UgcG9ydFxuIik7Ci0JCXJldHVybjsKKwkJZ290 byBjYWxsX3B1dF9idXNpZF9wcml2OwogCX0KIAogCS8qIElmIHVzYiByZXNldCBpcyBjYWxsZWQg ZnJvbSBldmVudCBoYW5kbGVyICovCiAJaWYgKHVzYmlwX2luX2VoKGN1cnJlbnQpKQotCQlyZXR1 cm47CisJCWdvdG8gY2FsbF9wdXRfYnVzaWRfcHJpdjsKIAogCS8qIHNodXRkb3duIHRoZSBjdXJy ZW50IGNvbm5lY3Rpb24gKi8KIAlzaHV0ZG93bl9idXNpZChidXNpZF9wcml2KTsKQEAgLTQ1MCw2 ICs0NjAsOSBAQCBzdGF0aWMgdm9pZCBzdHViX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9kZXZpY2Ug KnVkZXYpCiAKIAlpZiAoYnVzaWRfcHJpdi0+c3RhdHVzID09IFNUVUJfQlVTSURfQUxMT0MpCiAJ CWJ1c2lkX3ByaXYtPnN0YXR1cyA9IFNUVUJfQlVTSURfQURERUQ7CisKK2NhbGxfcHV0X2J1c2lk X3ByaXY6CisJcHV0X2J1c2lkX3ByaXYoYnVzaWRfcHJpdik7CiB9CiAKICNpZmRlZiBDT05GSUdf UE0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3VzYmlwL3N0dWJfbWFpbi5jIGIvZHJpdmVycy91 c2IvdXNiaXAvc3R1Yl9tYWluLmMKaW5kZXggNTg3YjliYzEwMDQyLi40MWM3YjlkZTJhOTIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3VzYmlwL3N0dWJfbWFpbi5jCisrKyBiL2RyaXZlcnMvdXNi L3VzYmlwL3N0dWJfbWFpbi5jCkBAIC0yNiw2ICsyNiw4IEBAIHN0YXRpYyBzcGlubG9ja190IGJ1 c2lkX3RhYmxlX2xvY2s7CiAKIHN0YXRpYyB2b2lkIGluaXRfYnVzaWRfdGFibGUodm9pZCkKIHsK KwlpbnQgaTsKKwogCS8qCiAJICogVGhpcyBhbHNvIHNldHMgdGhlIGJ1c190YWJsZVtpXS5zdGF0 dXMgdG8KIAkgKiBTVFVCX0JVU0lEX09USEVSLCB3aGljaCBpcyAwLgpAQCAtMzMsNiArMzUsOSBA QCBzdGF0aWMgdm9pZCBpbml0X2J1c2lkX3RhYmxlKHZvaWQpCiAJbWVtc2V0KGJ1c2lkX3RhYmxl LCAwLCBzaXplb2YoYnVzaWRfdGFibGUpKTsKIAogCXNwaW5fbG9ja19pbml0KCZidXNpZF90YWJs ZV9sb2NrKTsKKworCWZvciAoaSA9IDA7IGkgPCBNQVhfQlVTSUQ7IGkrKykKKwkJc3Bpbl9sb2Nr X2luaXQoJmJ1c2lkX3RhYmxlW2ldLmJ1c2lkX2xvY2spOwogfQogCiAvKgpAQCAtNDQsMTUgKzQ5 LDIwIEBAIHN0YXRpYyBpbnQgZ2V0X2J1c2lkX2lkeChjb25zdCBjaGFyICpidXNpZCkKIAlpbnQg aTsKIAlpbnQgaWR4ID0gLTE7CiAKLQlmb3IgKGkgPSAwOyBpIDwgTUFYX0JVU0lEOyBpKyspCisJ Zm9yIChpID0gMDsgaSA8IE1BWF9CVVNJRDsgaSsrKSB7CisJCXNwaW5fbG9jaygmYnVzaWRfdGFi bGVbaV0uYnVzaWRfbG9jayk7CiAJCWlmIChidXNpZF90YWJsZVtpXS5uYW1lWzBdKQogCQkJaWYg KCFzdHJuY21wKGJ1c2lkX3RhYmxlW2ldLm5hbWUsIGJ1c2lkLCBCVVNJRF9TSVpFKSkgewogCQkJ CWlkeCA9IGk7CisJCQkJc3Bpbl91bmxvY2soJmJ1c2lkX3RhYmxlW2ldLmJ1c2lkX2xvY2spOwog CQkJCWJyZWFrOwogCQkJfQorCQlzcGluX3VubG9jaygmYnVzaWRfdGFibGVbaV0uYnVzaWRfbG9j ayk7CisJfQogCXJldHVybiBpZHg7CiB9CiAKKy8qIFJldHVybnMgaG9sZGluZyBidXNpZF9sb2Nr LiBTaG91bGQgY2FsbCBwdXRfYnVzaWRfcHJpdigpIHRvIHVubG9jayAqLwogc3RydWN0IGJ1c19p ZF9wcml2ICpnZXRfYnVzaWRfcHJpdihjb25zdCBjaGFyICpidXNpZCkKIHsKIAlpbnQgaWR4OwpA QCAtNjAsMTMgKzcwLDIxIEBAIHN0cnVjdCBidXNfaWRfcHJpdiAqZ2V0X2J1c2lkX3ByaXYoY29u c3QgY2hhciAqYnVzaWQpCiAKIAlzcGluX2xvY2soJmJ1c2lkX3RhYmxlX2xvY2spOwogCWlkeCA9 IGdldF9idXNpZF9pZHgoYnVzaWQpOwotCWlmIChpZHggPj0gMCkKKwlpZiAoaWR4ID49IDApIHsK IAkJYmlkID0gJihidXNpZF90YWJsZVtpZHhdKTsKKwkJLyogZ2V0IGJ1c2lkX2xvY2sgYmVmb3Jl IHJldHVybmluZyAqLworCQlzcGluX2xvY2soJmJpZC0+YnVzaWRfbG9jayk7CisJfQogCXNwaW5f dW5sb2NrKCZidXNpZF90YWJsZV9sb2NrKTsKIAogCXJldHVybiBiaWQ7CiB9CiAKK3ZvaWQgcHV0 X2J1c2lkX3ByaXYoc3RydWN0IGJ1c19pZF9wcml2ICpiaWQpCit7CisJc3Bpbl91bmxvY2soJmJp ZC0+YnVzaWRfbG9jayk7Cit9CisKIHN0YXRpYyBpbnQgYWRkX21hdGNoX2J1c2lkKGNoYXIgKmJ1 c2lkKQogewogCWludCBpOwpAQCAtNzksMTUgKzk3LDE5IEBAIHN0YXRpYyBpbnQgYWRkX21hdGNo X2J1c2lkKGNoYXIgKmJ1c2lkKQogCQlnb3RvIG91dDsKIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwg TUFYX0JVU0lEOyBpKyspCisJZm9yIChpID0gMDsgaSA8IE1BWF9CVVNJRDsgaSsrKSB7CisJCXNw aW5fbG9jaygmYnVzaWRfdGFibGVbaV0uYnVzaWRfbG9jayk7CiAJCWlmICghYnVzaWRfdGFibGVb aV0ubmFtZVswXSkgewogCQkJc3RybGNweShidXNpZF90YWJsZVtpXS5uYW1lLCBidXNpZCwgQlVT SURfU0laRSk7CiAJCQlpZiAoKGJ1c2lkX3RhYmxlW2ldLnN0YXR1cyAhPSBTVFVCX0JVU0lEX0FM TE9DKSAmJgogCQkJICAgIChidXNpZF90YWJsZVtpXS5zdGF0dXMgIT0gU1RVQl9CVVNJRF9SRU1P VikpCiAJCQkJYnVzaWRfdGFibGVbaV0uc3RhdHVzID0gU1RVQl9CVVNJRF9BRERFRDsKIAkJCXJl dCA9IDA7CisJCQlzcGluX3VubG9jaygmYnVzaWRfdGFibGVbaV0uYnVzaWRfbG9jayk7CiAJCQli cmVhazsKIAkJfQorCQlzcGluX3VubG9jaygmYnVzaWRfdGFibGVbaV0uYnVzaWRfbG9jayk7CisJ fQogCiBvdXQ6CiAJc3Bpbl91bmxvY2soJmJ1c2lkX3RhYmxlX2xvY2spOwpAQCAtMTA4LDYgKzEz MCw4IEBAIGludCBkZWxfbWF0Y2hfYnVzaWQoY2hhciAqYnVzaWQpCiAJLyogZm91bmQgKi8KIAly ZXQgPSAwOwogCisJc3Bpbl9sb2NrKCZidXNpZF90YWJsZVtpZHhdLmJ1c2lkX2xvY2spOworCiAJ aWYgKGJ1c2lkX3RhYmxlW2lkeF0uc3RhdHVzID09IFNUVUJfQlVTSURfT1RIRVIpCiAJCW1lbXNl dChidXNpZF90YWJsZVtpZHhdLm5hbWUsIDAsIEJVU0lEX1NJWkUpOwogCkBAIC0xMTUsNiArMTM5 LDcgQEAgaW50IGRlbF9tYXRjaF9idXNpZChjaGFyICpidXNpZCkKIAkgICAgKGJ1c2lkX3RhYmxl W2lkeF0uc3RhdHVzICE9IFNUVUJfQlVTSURfQURERUQpKQogCQlidXNpZF90YWJsZVtpZHhdLnN0 YXR1cyA9IFNUVUJfQlVTSURfUkVNT1Y7CiAKKwlzcGluX3VubG9jaygmYnVzaWRfdGFibGVbaWR4 XS5idXNpZF9sb2NrKTsKIG91dDoKIAlzcGluX3VubG9jaygmYnVzaWRfdGFibGVfbG9jayk7CiAK QEAgLTEyNyw5ICsxNTIsMTIgQEAgc3RhdGljIHNzaXplX3QgbWF0Y2hfYnVzaWRfc2hvdyhzdHJ1 Y3QgZGV2aWNlX2RyaXZlciAqZHJ2LCBjaGFyICpidWYpCiAJY2hhciAqb3V0ID0gYnVmOwogCiAJ c3Bpbl9sb2NrKCZidXNpZF90YWJsZV9sb2NrKTsKLQlmb3IgKGkgPSAwOyBpIDwgTUFYX0JVU0lE OyBpKyspCisJZm9yIChpID0gMDsgaSA8IE1BWF9CVVNJRDsgaSsrKSB7CisJCXNwaW5fbG9jaygm YnVzaWRfdGFibGVbaV0uYnVzaWRfbG9jayk7CiAJCWlmIChidXNpZF90YWJsZVtpXS5uYW1lWzBd KQogCQkJb3V0ICs9IHNwcmludGYob3V0LCAiJXMgIiwgYnVzaWRfdGFibGVbaV0ubmFtZSk7CisJ CXNwaW5fdW5sb2NrKCZidXNpZF90YWJsZVtpXS5idXNpZF9sb2NrKTsKKwl9CiAJc3Bpbl91bmxv Y2soJmJ1c2lkX3RhYmxlX2xvY2spOwogCW91dCArPSBzcHJpbnRmKG91dCwgIlxuIik7CiAKQEAg LTIwNCw3ICsyMzIsNyBAQCBzdGF0aWMgdm9pZCBzdHViX2RldmljZV9yZWJpbmQodm9pZCkKIAl9 CiAJc3Bpbl91bmxvY2soJmJ1c2lkX3RhYmxlX2xvY2spOwogCi0JLyogbm93IHJ1biByZWJpbmQg Ki8KKwkvKiBub3cgcnVuIHJlYmluZCAtIG5vIG5lZWQgdG8gaG9sZCBsb2Nrcy4gZHJpdmVyIGZp bGVzIGFyZSByZW1vdmVkICovCiAJZm9yIChpID0gMDsgaSA8IE1BWF9CVVNJRDsgaSsrKSB7CiAJ CWlmIChidXNpZF90YWJsZVtpXS5uYW1lWzBdICYmCiAJCSAgICBidXNpZF90YWJsZVtpXS5zaHV0 ZG93bl9idXNpZCkgewpAQCAtMjM0LDYgKzI2Miw4IEBAIHN0YXRpYyBzc2l6ZV90IHJlYmluZF9z dG9yZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZGV2LCBjb25zdCBjaGFyICpidWYsCiAKIAkvKiBt YXJrIHRoZSBkZXZpY2UgZm9yIGRlbGV0aW9uIHNvIHByb2JlIGlnbm9yZXMgaXQgZHVyaW5nIHJl c2NhbiAqLwogCWJpZC0+c3RhdHVzID0gU1RVQl9CVVNJRF9PVEhFUjsKKwkvKiByZWxlYXNlIHRo ZSBidXNpZCBsb2NrICovCisJcHV0X2J1c2lkX3ByaXYoYmlkKTsKIAogCXJldCA9IGRvX3JlYmlu ZCgoY2hhciAqKSBidWYsIGJpZCk7CiAJaWYgKHJldCA8IDApCg==