From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: [PATCH v2 01/13] drm/modes: parse_cmdline: Fix possible reference past end of string Date: Wed, 13 Nov 2019 17:44:22 +0100 Message-ID: <20191113164434.254159-1-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id AAA5A891CB for ; Wed, 13 Nov 2019 16:44:44 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maxime Ripard , Sean Paul , Daniel Vetter , David Airlie Cc: Hans de Goede , Derek Basehore , =?UTF-8?q?Mathieu=20Alexandre-T=C3=A9treault?= , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QmVmb3JlIHRoaXMgY29tbWl0LCBpZiB0aGUgbGFzdCBvcHRpb24gb2YgYSB2aWRlbz0uLi4gb3B0 aW9uIGlzIGZvcgpleGFtcGxlICJyb3RhdGUiIHdpdGhvdXQgYSAiPTx2YWx1ZT4iIGFmdGVyIGl0 IHRoZW4gZGVsaW0gd2lsbCBwb2ludCB0bwp0aGUgdGVybWluYXRpbmcgMCBvZiB0aGUgc3RyaW5n LCBhbmQgdmFsdWUgd2hpY2ggaXMgc2V0cyB0byA8ZGVsaW0gKyAxPgp3aWxsIHBvaW50IG9uZSBw b3NpdGlvbiBwYXN0IHRoZSBlbmQgb2YgdGhlIHN0cmluZy4KClRoaXMgY29tbWl0IGZpeGVzIHRo aXMgYnkgZW5mb3JjaW5nIHRoYXQgdGhlIGNvbnRlbnRzIG9mIGRlbGltIGVxdWFscyAnPScKYXMg aXQgc2hvdWxkIGJlIGZvciBvcHRpb25zIHdoaWNoIHRha2UgYSB2YWx1ZSwgdGhpcyBjaGVjayBp cyBkb25lIGluIGEKbmV3IGRybV9tb2RlX3BhcnNlX2NtZGxpbmVfaW50IGhlbHBlciBmdW5jdGlv biB3aGljaCBmYWN0b3JzIG91dCB0aGUKY29tbW9uIGludGVnZXIgcGFyc2luZyBjb2RlIGZvciBh bGwgdGhlIG9wdGlvbnMgd2hpY2ggdGFrZSBhbiBpbnQuCgpBY2tlZC1ieTogTWF4aW1lIFJpcGFy ZCA8bXJpcGFyZEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBIYW5zIGRlIEdvZWRlIDxoZGVn b2VkZUByZWRoYXQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYyB8IDY4ICsr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMCBp bnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX21vZGVzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMKaW5kZXggODgyMzI2 OThkN2EwLi4zYzNjNzQzNTIyNWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9k ZXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMKQEAgLTE1NjgsMTEgKzE1Njgs MzQgQEAgc3RhdGljIGludCBkcm1fbW9kZV9wYXJzZV9jbWRsaW5lX3Jlc19tb2RlKGNvbnN0IGNo YXIgKnN0ciwgdW5zaWduZWQgaW50IGxlbmd0aCwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGlu dCBkcm1fbW9kZV9wYXJzZV9jbWRsaW5lX2ludChjb25zdCBjaGFyICpkZWxpbSwgdW5zaWduZWQg aW50ICppbnRfcmV0KQoreworCWNvbnN0IGNoYXIgKnZhbHVlOworCWNoYXIgKmVuZHA7CisKKwkv KgorCSAqIGRlbGltIG11c3QgcG9pbnQgdG8gdGhlICc9Jywgb3RoZXJ3aXNlIGl0IGlzIGEgc3lu dGF4IGVycm9yIGFuZAorCSAqIGlmIGRlbGltIHBvaW50cyB0byB0aGUgdGVybWluYXRpbmcgemVy bywgdGhlbiBkZWxpbSArIDEgd2lsIHBvaW50CisJICogcGFzdCB0aGUgZW5kIG9mIHRoZSBzdHJp bmcuCisJICovCisJaWYgKCpkZWxpbSAhPSAnPScpCisJCXJldHVybiAtRUlOVkFMOworCisJdmFs dWUgPSBkZWxpbSArIDE7CisJKmludF9yZXQgPSBzaW1wbGVfc3RydG9sKHZhbHVlLCAmZW5kcCwg MTApOworCisJLyogTWFrZSBzdXJlIHdlIGhhdmUgcGFyc2VkIHNvbWV0aGluZyAqLworCWlmIChl bmRwID09IHZhbHVlKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiAwOworfQorCiBzdGF0 aWMgaW50IGRybV9tb2RlX3BhcnNlX2NtZGxpbmVfb3B0aW9ucyhjaGFyICpzdHIsIHNpemVfdCBs ZW4sCiAJCQkJCSAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCQkJ ICBzdHJ1Y3QgZHJtX2NtZGxpbmVfbW9kZSAqbW9kZSkKIHsKLQl1bnNpZ25lZCBpbnQgcm90YXRp b24gPSAwOworCXVuc2lnbmVkIGludCBkZWcsIG1hcmdpbiwgcm90YXRpb24gPSAwOwogCWNoYXIg KnNlcCA9IHN0cjsKIAogCXdoaWxlICgoc2VwID0gc3RyY2hyKHNlcCwgJywnKSkpIHsKQEAgLTE1 ODgsMTMgKzE2MTEsNyBAQCBzdGF0aWMgaW50IGRybV9tb2RlX3BhcnNlX2NtZGxpbmVfb3B0aW9u cyhjaGFyICpzdHIsIHNpemVfdCBsZW4sCiAJCX0KIAogCQlpZiAoIXN0cm5jbXAob3B0aW9uLCAi cm90YXRlIiwgZGVsaW0gLSBvcHRpb24pKSB7Ci0JCQljb25zdCBjaGFyICp2YWx1ZSA9IGRlbGlt ICsgMTsKLQkJCXVuc2lnbmVkIGludCBkZWc7Ci0KLQkJCWRlZyA9IHNpbXBsZV9zdHJ0b2wodmFs dWUsICZzZXAsIDEwKTsKLQotCQkJLyogTWFrZSBzdXJlIHdlIGhhdmUgcGFyc2VkIHNvbWV0aGlu ZyAqLwotCQkJaWYgKHNlcCA9PSB2YWx1ZSkKKwkJCWlmIChkcm1fbW9kZV9wYXJzZV9jbWRsaW5l X2ludChkZWxpbSwgJmRlZykpCiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJCXN3aXRjaCAoZGVn KSB7CkBAIC0xNjE5LDU3ICsxNjM2LDMyIEBAIHN0YXRpYyBpbnQgZHJtX21vZGVfcGFyc2VfY21k bGluZV9vcHRpb25zKGNoYXIgKnN0ciwgc2l6ZV90IGxlbiwKIAkJCX0KIAkJfSBlbHNlIGlmICgh c3RybmNtcChvcHRpb24sICJyZWZsZWN0X3giLCBkZWxpbSAtIG9wdGlvbikpIHsKIAkJCXJvdGF0 aW9uIHw9IERSTV9NT0RFX1JFRkxFQ1RfWDsKLQkJCXNlcCA9IGRlbGltOwogCQl9IGVsc2UgaWYg KCFzdHJuY21wKG9wdGlvbiwgInJlZmxlY3RfeSIsIGRlbGltIC0gb3B0aW9uKSkgewogCQkJcm90 YXRpb24gfD0gRFJNX01PREVfUkVGTEVDVF9ZOwotCQkJc2VwID0gZGVsaW07CiAJCX0gZWxzZSBp ZiAoIXN0cm5jbXAob3B0aW9uLCAibWFyZ2luX3JpZ2h0IiwgZGVsaW0gLSBvcHRpb24pKSB7Ci0J CQljb25zdCBjaGFyICp2YWx1ZSA9IGRlbGltICsgMTsKLQkJCXVuc2lnbmVkIGludCBtYXJnaW47 Ci0KLQkJCW1hcmdpbiA9IHNpbXBsZV9zdHJ0b2wodmFsdWUsICZzZXAsIDEwKTsKLQotCQkJLyog TWFrZSBzdXJlIHdlIGhhdmUgcGFyc2VkIHNvbWV0aGluZyAqLwotCQkJaWYgKHNlcCA9PSB2YWx1 ZSkKKwkJCWlmIChkcm1fbW9kZV9wYXJzZV9jbWRsaW5lX2ludChkZWxpbSwgJm1hcmdpbikpCiAJ CQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJCW1vZGUtPnR2X21hcmdpbnMucmlnaHQgPSBtYXJnaW47 CiAJCX0gZWxzZSBpZiAoIXN0cm5jbXAob3B0aW9uLCAibWFyZ2luX2xlZnQiLCBkZWxpbSAtIG9w dGlvbikpIHsKLQkJCWNvbnN0IGNoYXIgKnZhbHVlID0gZGVsaW0gKyAxOwotCQkJdW5zaWduZWQg aW50IG1hcmdpbjsKLQotCQkJbWFyZ2luID0gc2ltcGxlX3N0cnRvbCh2YWx1ZSwgJnNlcCwgMTAp OwotCi0JCQkvKiBNYWtlIHN1cmUgd2UgaGF2ZSBwYXJzZWQgc29tZXRoaW5nICovCi0JCQlpZiAo c2VwID09IHZhbHVlKQorCQkJaWYgKGRybV9tb2RlX3BhcnNlX2NtZGxpbmVfaW50KGRlbGltLCAm bWFyZ2luKSkKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQkJbW9kZS0+dHZfbWFyZ2lucy5sZWZ0 ID0gbWFyZ2luOwogCQl9IGVsc2UgaWYgKCFzdHJuY21wKG9wdGlvbiwgIm1hcmdpbl90b3AiLCBk ZWxpbSAtIG9wdGlvbikpIHsKLQkJCWNvbnN0IGNoYXIgKnZhbHVlID0gZGVsaW0gKyAxOwotCQkJ dW5zaWduZWQgaW50IG1hcmdpbjsKLQotCQkJbWFyZ2luID0gc2ltcGxlX3N0cnRvbCh2YWx1ZSwg JnNlcCwgMTApOwotCi0JCQkvKiBNYWtlIHN1cmUgd2UgaGF2ZSBwYXJzZWQgc29tZXRoaW5nICov Ci0JCQlpZiAoc2VwID09IHZhbHVlKQorCQkJaWYgKGRybV9tb2RlX3BhcnNlX2NtZGxpbmVfaW50 KGRlbGltLCAmbWFyZ2luKSkKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQkJbW9kZS0+dHZfbWFy Z2lucy50b3AgPSBtYXJnaW47CiAJCX0gZWxzZSBpZiAoIXN0cm5jbXAob3B0aW9uLCAibWFyZ2lu X2JvdHRvbSIsIGRlbGltIC0gb3B0aW9uKSkgewotCQkJY29uc3QgY2hhciAqdmFsdWUgPSBkZWxp bSArIDE7Ci0JCQl1bnNpZ25lZCBpbnQgbWFyZ2luOwotCi0JCQltYXJnaW4gPSBzaW1wbGVfc3Ry dG9sKHZhbHVlLCAmc2VwLCAxMCk7Ci0KLQkJCS8qIE1ha2Ugc3VyZSB3ZSBoYXZlIHBhcnNlZCBz b21ldGhpbmcgKi8KLQkJCWlmIChzZXAgPT0gdmFsdWUpCisJCQlpZiAoZHJtX21vZGVfcGFyc2Vf Y21kbGluZV9pbnQoZGVsaW0sICZtYXJnaW4pKQogCQkJCXJldHVybiAtRUlOVkFMOwogCiAJCQlt b2RlLT50dl9tYXJnaW5zLmJvdHRvbSA9IG1hcmdpbjsKIAkJfSBlbHNlIHsKIAkJCXJldHVybiAt RUlOVkFMOwogCQl9CisJCXNlcCA9IGRlbGltOwogCX0KIAogCW1vZGUtPnJvdGF0aW9uX3JlZmxl Y3Rpb24gPSByb3RhdGlvbjsKLS0gCjIuMjMuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVs