From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: USB: serial: visor: handle potential invalid device configuration From: Greg Kroah-Hartman Message-Id: <20180429154155.GA23102@kroah.com> Date: Sun, 29 Apr 2018 17:41:55 +0200 To: Johan Hovold Cc: Andrey Konovalov , linux-usb@vger.kernel.org List-ID: SWYgd2UgZ2V0IGFuIGludmFsaWQgZGV2aWNlIGNvbmZpZ3VyYXRpb24gZnJvbSBhIHBhbG0gMyB0 eXBlIGRldmljZSwgd2UKbWlnaHQgaW5jb3JyZWN0bHkgcGFyc2UgdGhpbmdzLCBhbmQgd2UgaGF2 ZSB0aGUgcG90ZW50aWFsIHRvIGNyYXNoIGluCiJpbnRlcmVzdGluZyIgd2F5cy4KCkZpeCB0aGlz IHVwIGJ5IHZlcmlmeWluZyB0aGUgc2l6ZSBvZiB0aGUgY29uZmlndXJhdGlvbiBwYXNzZWQgdG8g dXMgYnkKdGhlIGRldmljZSwgYW5kIG9ubHkgaWYgaXQgaXMgY29ycmVjdCwgd2lsbCB3ZSBoYW5k bGUgaXQuCgpSZXBvcnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUu Y29tPgpSZXZpZXdlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRp b24ub3JnPgotLS0KCkhlcmUgaXMgbXkgbG9uZy1mb3Jnb3R0ZW4gcGF0Y2ggZm9yIHRoZSB2aXNv ciBkcml2ZXIgdG8gcmVzb2x2ZSBhbiBpc3N1ZQp0aGF0IEFuZHJleSBmb3VuZCBiYWNrIGluIFNl cHRlbWJlciBvZiAyMDE3LiAgU29ycnkgZm9yIHRoZSBsb25nIGRlbGF5LgoKSm9oYW4sIEkgaW5j b3Jwb3JhdGVkIHlvdXIgcmV2aWV3IGNvbW1lbnRzIG9mIG15IG9yaWdpbmFsIG9uZS1vZmYgcGF0 Y2gKaGVyZSBhcyB3ZWxsLgoKCi0tClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5k IHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC11c2IiIGluCnRoZSBib2R5IG9mIGEgbWVzc2Fn ZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnCk1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0 dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL3NlcmlhbC92aXNvci5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL3Zpc29yLmMKaW5k ZXggZjUzNzNlZDJjZDQ1Li44ZGRiZWNjMjVkODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3Nl cmlhbC92aXNvci5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC92aXNvci5jCkBAIC0zMzUsNDcg KzMzNSw0OCBAQCBzdGF0aWMgaW50IHBhbG1fb3NfM19wcm9iZShzdHJ1Y3QgdXNiX3NlcmlhbCAq c2VyaWFsLAogCQlnb3RvIGV4aXQ7CiAJfQogCi0JaWYgKHJldHZhbCA9PSBzaXplb2YoKmNvbm5l Y3Rpb25faW5mbykpIHsKLQkJCWNvbm5lY3Rpb25faW5mbyA9IChzdHJ1Y3Qgdmlzb3JfY29ubmVj dGlvbl9pbmZvICopCi0JCQkJCQkJdHJhbnNmZXJfYnVmZmVyOwotCi0JCW51bV9wb3J0cyA9IGxl MTZfdG9fY3B1KGNvbm5lY3Rpb25faW5mby0+bnVtX3BvcnRzKTsKLQkJZm9yIChpID0gMDsgaSA8 IG51bV9wb3J0czsgKytpKSB7Ci0JCQlzd2l0Y2ggKAotCQkJICAgY29ubmVjdGlvbl9pbmZvLT5j b25uZWN0aW9uc1tpXS5wb3J0X2Z1bmN0aW9uX2lkKSB7Ci0JCQljYXNlIFZJU09SX0ZVTkNUSU9O X0dFTkVSSUM6Ci0JCQkJc3RyaW5nID0gIkdlbmVyaWMiOwotCQkJCWJyZWFrOwotCQkJY2FzZSBW SVNPUl9GVU5DVElPTl9ERUJVR0dFUjoKLQkJCQlzdHJpbmcgPSAiRGVidWdnZXIiOwotCQkJCWJy ZWFrOwotCQkJY2FzZSBWSVNPUl9GVU5DVElPTl9IT1RTWU5DOgotCQkJCXN0cmluZyA9ICJIb3RT eW5jIjsKLQkJCQlicmVhazsKLQkJCWNhc2UgVklTT1JfRlVOQ1RJT05fQ09OU09MRToKLQkJCQlz dHJpbmcgPSAiQ29uc29sZSI7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFZJU09SX0ZVTkNUSU9OX1JF TU9URV9GSUxFX1NZUzoKLQkJCQlzdHJpbmcgPSAiUmVtb3RlIEZpbGUgU3lzdGVtIjsKLQkJCQli cmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJc3RyaW5nID0gInVua25vd24iOwotCQkJCWJyZWFrOwot CQkJfQotCQkJZGV2X2luZm8oZGV2LCAiJXM6IHBvcnQgJWQsIGlzIGZvciAlcyB1c2VcbiIsCi0J CQkJc2VyaWFsLT50eXBlLT5kZXNjcmlwdGlvbiwKLQkJCQljb25uZWN0aW9uX2luZm8tPmNvbm5l Y3Rpb25zW2ldLnBvcnQsIHN0cmluZyk7Ci0JCX0KKwlpZiAocmV0dmFsICE9IHNpemVvZigqY29u bmVjdGlvbl9pbmZvKSkgeworCQlkZXZfZXJyKGRldiwgIkludmFsaWQgY29ubmVjdGlvbiBpbmZv cm1hdGlvbiByZWNlaXZlZCBmcm9tIGRldmljZVxuIik7CisJCXJldHZhbCA9IC1FTk9ERVY7CisJ CWdvdG8gZXhpdDsKIAl9Ci0JLyoKLQkqIEhhbmRsZSBkZXZpY2VzIHRoYXQgcmVwb3J0IGludmFs aWQgc3R1ZmYgaGVyZS4KLQkqLworCisJY29ubmVjdGlvbl9pbmZvID0gKHN0cnVjdCB2aXNvcl9j b25uZWN0aW9uX2luZm8gKil0cmFuc2Zlcl9idWZmZXI7CisKKwludW1fcG9ydHMgPSBsZTE2X3Rv X2NwdShjb25uZWN0aW9uX2luZm8tPm51bV9wb3J0cyk7CisKKwkvKiBIYW5kbGUgZGV2aWNlcyB0 aGF0IHJlcG9ydCBpbnZhbGlkIHN0dWZmIGhlcmUuICovCiAJaWYgKG51bV9wb3J0cyA9PSAwIHx8 IG51bV9wb3J0cyA+IDIpIHsKIAkJZGV2X3dhcm4oZGV2LCAiJXM6IE5vIHZhbGlkIGNvbm5lY3Qg aW5mbyBhdmFpbGFibGVcbiIsCiAJCQlzZXJpYWwtPnR5cGUtPmRlc2NyaXB0aW9uKTsKIAkJbnVt X3BvcnRzID0gMjsKIAl9CiAKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3BvcnRzOyArK2kpIHsKKwkJ c3dpdGNoIChjb25uZWN0aW9uX2luZm8tPmNvbm5lY3Rpb25zW2ldLnBvcnRfZnVuY3Rpb25faWQp IHsKKwkJY2FzZSBWSVNPUl9GVU5DVElPTl9HRU5FUklDOgorCQkJc3RyaW5nID0gIkdlbmVyaWMi OworCQkJYnJlYWs7CisJCWNhc2UgVklTT1JfRlVOQ1RJT05fREVCVUdHRVI6CisJCQlzdHJpbmcg PSAiRGVidWdnZXIiOworCQkJYnJlYWs7CisJCWNhc2UgVklTT1JfRlVOQ1RJT05fSE9UU1lOQzoK KwkJCXN0cmluZyA9ICJIb3RTeW5jIjsKKwkJCWJyZWFrOworCQljYXNlIFZJU09SX0ZVTkNUSU9O X0NPTlNPTEU6CisJCQlzdHJpbmcgPSAiQ29uc29sZSI7CisJCQlicmVhazsKKwkJY2FzZSBWSVNP Ul9GVU5DVElPTl9SRU1PVEVfRklMRV9TWVM6CisJCQlzdHJpbmcgPSAiUmVtb3RlIEZpbGUgU3lz dGVtIjsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJc3RyaW5nID0gInVua25vd24iOworCQkJ YnJlYWs7CisJCX0KKwkJZGV2X2luZm8oZGV2LCAiJXM6IHBvcnQgJWQsIGlzIGZvciAlcyB1c2Vc biIsCisJCQlzZXJpYWwtPnR5cGUtPmRlc2NyaXB0aW9uLAorCQkJY29ubmVjdGlvbl9pbmZvLT5j b25uZWN0aW9uc1tpXS5wb3J0LCBzdHJpbmcpOworCX0KIAlkZXZfaW5mbyhkZXYsICIlczogTnVt YmVyIG9mIHBvcnRzOiAlZFxuIiwgc2VyaWFsLT50eXBlLT5kZXNjcmlwdGlvbiwKIAkJbnVtX3Bv cnRzKTsKIAo=