From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: [PATCH 01/12] drm/modes: parse_cmdline: Fix possible reference past end of string Date: Sun, 10 Nov 2019 16:40:50 +0100 Message-ID: <20191110154101.26486-2-hdegoede@redhat.com> References: <20191110154101.26486-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 8320E6E094 for ; Sun, 10 Nov 2019 15:41:10 +0000 (UTC) In-Reply-To: <20191110154101.26486-1-hdegoede@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maarten Lankhorst , Maxime Ripard , Sean Paul , Daniel Vetter , David Airlie Cc: Hans de Goede , =?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 bGwgdGhlIG9wdGlvbnMgd2hpY2ggdGFrZSBhbiBpbnQuCgpTaWduZWQtb2ZmLWJ5OiBIYW5zIGRl IEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9k ZXMuYyB8IDY4ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMK aW5kZXggODgyMzI2OThkN2EwLi4zYzNjNzQzNTIyNWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fbW9kZXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMKQEAgLTE1 NjgsMTEgKzE1NjgsMzQgQEAgc3RhdGljIGludCBkcm1fbW9kZV9wYXJzZV9jbWRsaW5lX3Jlc19t b2RlKGNvbnN0IGNoYXIgKnN0ciwgdW5zaWduZWQgaW50IGxlbmd0aCwKIAlyZXR1cm4gMDsKIH0K IAorc3RhdGljIGludCBkcm1fbW9kZV9wYXJzZV9jbWRsaW5lX2ludChjb25zdCBjaGFyICpkZWxp bSwgdW5zaWduZWQgaW50ICppbnRfcmV0KQoreworCWNvbnN0IGNoYXIgKnZhbHVlOworCWNoYXIg KmVuZHA7CisKKwkvKgorCSAqIGRlbGltIG11c3QgcG9pbnQgdG8gdGhlICc9Jywgb3RoZXJ3aXNl IGl0IGlzIGEgc3ludGF4IGVycm9yIGFuZAorCSAqIGlmIGRlbGltIHBvaW50cyB0byB0aGUgdGVy bWluYXRpbmcgemVybywgdGhlbiBkZWxpbSArIDEgd2lsIHBvaW50CisJICogcGFzdCB0aGUgZW5k IG9mIHRoZSBzdHJpbmcuCisJICovCisJaWYgKCpkZWxpbSAhPSAnPScpCisJCXJldHVybiAtRUlO VkFMOworCisJdmFsdWUgPSBkZWxpbSArIDE7CisJKmludF9yZXQgPSBzaW1wbGVfc3RydG9sKHZh bHVlLCAmZW5kcCwgMTApOworCisJLyogTWFrZSBzdXJlIHdlIGhhdmUgcGFyc2VkIHNvbWV0aGlu ZyAqLworCWlmIChlbmRwID09IHZhbHVlKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiAw OworfQorCiBzdGF0aWMgaW50IGRybV9tb2RlX3BhcnNlX2NtZGxpbmVfb3B0aW9ucyhjaGFyICpz dHIsIHNpemVfdCBsZW4sCiAJCQkJCSAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKIAkJCQkJICBzdHJ1Y3QgZHJtX2NtZGxpbmVfbW9kZSAqbW9kZSkKIHsKLQl1bnNpZ25l ZCBpbnQgcm90YXRpb24gPSAwOworCXVuc2lnbmVkIGludCBkZWcsIG1hcmdpbiwgcm90YXRpb24g PSAwOwogCWNoYXIgKnNlcCA9IHN0cjsKIAogCXdoaWxlICgoc2VwID0gc3RyY2hyKHNlcCwgJywn KSkpIHsKQEAgLTE1ODgsMTMgKzE2MTEsNyBAQCBzdGF0aWMgaW50IGRybV9tb2RlX3BhcnNlX2Nt ZGxpbmVfb3B0aW9ucyhjaGFyICpzdHIsIHNpemVfdCBsZW4sCiAJCX0KIAogCQlpZiAoIXN0cm5j bXAob3B0aW9uLCAicm90YXRlIiwgZGVsaW0gLSBvcHRpb24pKSB7Ci0JCQljb25zdCBjaGFyICp2 YWx1ZSA9IGRlbGltICsgMTsKLQkJCXVuc2lnbmVkIGludCBkZWc7Ci0KLQkJCWRlZyA9IHNpbXBs ZV9zdHJ0b2wodmFsdWUsICZzZXAsIDEwKTsKLQotCQkJLyogTWFrZSBzdXJlIHdlIGhhdmUgcGFy c2VkIHNvbWV0aGluZyAqLwotCQkJaWYgKHNlcCA9PSB2YWx1ZSkKKwkJCWlmIChkcm1fbW9kZV9w YXJzZV9jbWRsaW5lX2ludChkZWxpbSwgJmRlZykpCiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJ CXN3aXRjaCAoZGVnKSB7CkBAIC0xNjE5LDU3ICsxNjM2LDMyIEBAIHN0YXRpYyBpbnQgZHJtX21v ZGVfcGFyc2VfY21kbGluZV9vcHRpb25zKGNoYXIgKnN0ciwgc2l6ZV90IGxlbiwKIAkJCX0KIAkJ fSBlbHNlIGlmICghc3RybmNtcChvcHRpb24sICJyZWZsZWN0X3giLCBkZWxpbSAtIG9wdGlvbikp IHsKIAkJCXJvdGF0aW9uIHw9IERSTV9NT0RFX1JFRkxFQ1RfWDsKLQkJCXNlcCA9IGRlbGltOwog CQl9IGVsc2UgaWYgKCFzdHJuY21wKG9wdGlvbiwgInJlZmxlY3RfeSIsIGRlbGltIC0gb3B0aW9u KSkgewogCQkJcm90YXRpb24gfD0gRFJNX01PREVfUkVGTEVDVF9ZOwotCQkJc2VwID0gZGVsaW07 CiAJCX0gZWxzZSBpZiAoIXN0cm5jbXAob3B0aW9uLCAibWFyZ2luX3JpZ2h0IiwgZGVsaW0gLSBv cHRpb24pKSB7Ci0JCQljb25zdCBjaGFyICp2YWx1ZSA9IGRlbGltICsgMTsKLQkJCXVuc2lnbmVk IGludCBtYXJnaW47Ci0KLQkJCW1hcmdpbiA9IHNpbXBsZV9zdHJ0b2wodmFsdWUsICZzZXAsIDEw KTsKLQotCQkJLyogTWFrZSBzdXJlIHdlIGhhdmUgcGFyc2VkIHNvbWV0aGluZyAqLwotCQkJaWYg KHNlcCA9PSB2YWx1ZSkKKwkJCWlmIChkcm1fbW9kZV9wYXJzZV9jbWRsaW5lX2ludChkZWxpbSwg Jm1hcmdpbikpCiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJCW1vZGUtPnR2X21hcmdpbnMucmln aHQgPSBtYXJnaW47CiAJCX0gZWxzZSBpZiAoIXN0cm5jbXAob3B0aW9uLCAibWFyZ2luX2xlZnQi LCBkZWxpbSAtIG9wdGlvbikpIHsKLQkJCWNvbnN0IGNoYXIgKnZhbHVlID0gZGVsaW0gKyAxOwot CQkJdW5zaWduZWQgaW50IG1hcmdpbjsKLQotCQkJbWFyZ2luID0gc2ltcGxlX3N0cnRvbCh2YWx1 ZSwgJnNlcCwgMTApOwotCi0JCQkvKiBNYWtlIHN1cmUgd2UgaGF2ZSBwYXJzZWQgc29tZXRoaW5n ICovCi0JCQlpZiAoc2VwID09IHZhbHVlKQorCQkJaWYgKGRybV9tb2RlX3BhcnNlX2NtZGxpbmVf aW50KGRlbGltLCAmbWFyZ2luKSkKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQkJbW9kZS0+dHZf bWFyZ2lucy5sZWZ0ID0gbWFyZ2luOwogCQl9IGVsc2UgaWYgKCFzdHJuY21wKG9wdGlvbiwgIm1h cmdpbl90b3AiLCBkZWxpbSAtIG9wdGlvbikpIHsKLQkJCWNvbnN0IGNoYXIgKnZhbHVlID0gZGVs aW0gKyAxOwotCQkJdW5zaWduZWQgaW50IG1hcmdpbjsKLQotCQkJbWFyZ2luID0gc2ltcGxlX3N0 cnRvbCh2YWx1ZSwgJnNlcCwgMTApOwotCi0JCQkvKiBNYWtlIHN1cmUgd2UgaGF2ZSBwYXJzZWQg c29tZXRoaW5nICovCi0JCQlpZiAoc2VwID09IHZhbHVlKQorCQkJaWYgKGRybV9tb2RlX3BhcnNl X2NtZGxpbmVfaW50KGRlbGltLCAmbWFyZ2luKSkKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQkJ bW9kZS0+dHZfbWFyZ2lucy50b3AgPSBtYXJnaW47CiAJCX0gZWxzZSBpZiAoIXN0cm5jbXAob3B0 aW9uLCAibWFyZ2luX2JvdHRvbSIsIGRlbGltIC0gb3B0aW9uKSkgewotCQkJY29uc3QgY2hhciAq dmFsdWUgPSBkZWxpbSArIDE7Ci0JCQl1bnNpZ25lZCBpbnQgbWFyZ2luOwotCi0JCQltYXJnaW4g PSBzaW1wbGVfc3RydG9sKHZhbHVlLCAmc2VwLCAxMCk7Ci0KLQkJCS8qIE1ha2Ugc3VyZSB3ZSBo YXZlIHBhcnNlZCBzb21ldGhpbmcgKi8KLQkJCWlmIChzZXAgPT0gdmFsdWUpCisJCQlpZiAoZHJt X21vZGVfcGFyc2VfY21kbGluZV9pbnQoZGVsaW0sICZtYXJnaW4pKQogCQkJCXJldHVybiAtRUlO VkFMOwogCiAJCQltb2RlLT50dl9tYXJnaW5zLmJvdHRvbSA9IG1hcmdpbjsKIAkJfSBlbHNlIHsK IAkJCXJldHVybiAtRUlOVkFMOwogCQl9CisJCXNlcCA9IGRlbGltOwogCX0KIAogCW1vZGUtPnJv dGF0aW9uX3JlZmxlY3Rpb24gPSByb3RhdGlvbjsKLS0gCjIuMjMuMAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs