From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 03B89C433E0 for ; Thu, 30 Jul 2020 07:18:25 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D13072070B for ; Thu, 30 Jul 2020 07:18:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D13072070B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=nsfocus.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 04C826E881; Thu, 30 Jul 2020 07:18:24 +0000 (UTC) Received: from nsfocus.com (unknown [221.122.62.131]) by gabe.freedesktop.org (Postfix) with SMTP id F2BAF89956 for ; Wed, 29 Jul 2020 08:19:46 +0000 (UTC) Received: (qmail 3331 invoked from network); 29 Jul 2020 07:51:42 -0000 Received: from unknown (HELO ?192.168.7.10?) (221.122.62.131) by nsfocus.com with SMTP; 29 Jul 2020 07:51:42 -0000 Subject: Re: [PATCH] vgacon: fix out of bounds write to the scrollback buffer To: Jiri Slaby , b.zolnierkie@samsung.com References: <20200729070249.20892-1-jslaby@suse.cz> From: =?UTF-8?B?5byg5LqR5rW3?= Autocrypt: addr=zhangyunhai@nsfocus.com; keydata= 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 Message-ID: <55075898-bf95-1805-3358-b0d1438feaa9@nsfocus.com> Date: Wed, 29 Jul 2020 15:53:02 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200729070249.20892-1-jslaby@suse.cz> X-Mailman-Approved-At: Thu, 30 Jul 2020 07:16:49 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Security Officers , Kyungtae Kim , Anthony Liguori , Greg KH , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org, linux-distros@vs.openwall.org, Solar Designer , Yang Yingliang , Linus Torvalds , "Srivatsa S. Bhat" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgQWxsLAoKVGhpcyBwYXRjaCBkb3Nlbid0IGZpeCB0aGUgaXNzdWUsIHRoZSBjaGVjayBzaG91 bGQgYmUgaW4gdGhlIGxvb3AuCgpUaGUgY2hhbmdlIG9mIHRoZSBWVCBzemUgaXMgYmVmb3JlIHZn YWNvbl9zY3JvbGxiYWNrX3VwZGF0ZSwgbm90IGluIHRoZQptZWFudGltZS4KCkxldCdzIGNvbnNp ZGVyIHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uOgoJc3VwcG9zZToKCQl2Z2Fjb25fc2Nyb2xsYmFj a19jdXItPnNpemUgaXMgNjU0NDAKCQl2Z2Fjb25fc2Nyb2xsYmFja19jdXItPnRhaWwgaXMgNjQ5 NjAKCQljLT52Y19zaXplX3JvdyBpcyAxNjAKCQljb3VudCBpcyA1CgkKCVJlc2V0IGMtPnZjX3Np emVfcm93IHRvIDIwMCBieSBWVF9SRVNJWkUsIHRoZW4gY2FsbAp2Z2Fjb25fc2Nyb2xsYmFja191 cGRhdGUuCgkKCVRoaXMgd2lsbCBwYXNzIHRoZSBjaGVjaywgc2luY2UgKHZnYWNvbl9zY3JvbGxi YWNrX2N1ci0+dGFpbCArCmMtPnZjX3NpemVfcm93KQoJaXMgNjUxNjAgd2hpY2ggaXMgbGVzcyB0 aGVuIHZnYWNvbl9zY3JvbGxiYWNrX2N1ci0+c2l6ZSg2NTQ0MCkuCgoJSG93ZXZlciwgaW4gdGhl IDNyZCBpdGVyYXRpb24gb2YgdGhlIGxvb3AsIHZnYWNvbl9zY3JvbGxiYWNrX2N1ci0+dGFpbApp cyB1cGRhdGUKCXRvIDY1MzYwLCB0aGUgbWVtY3B5IHdpbGwgb3ZlcmZsb3cuCgpUbyBhdm9pZCBv dmVyZmxvdywgdGhlIGNoZWNrIHNob3VsZCBiZQogICAgICAgICAgIGlmICgodmdhY29uX3Njcm9s bGJhY2tfY3VyLT50YWlsICsgYy0+dmNfc2l6ZV9yb3cgKiBjb3VudCkgPj0KCkhvd2V2ZXIsIHRo aXMgd2lsbCBicmVhayB0aGUgY2lyY3VsYXIgb2YgdGhlIGJ1ZmZlciwgc2luY2UgYWxsIDUgbGlu ZXMKd2lsbCBiZSBjb3B5IGF0IHRoZSBiZWdpbm5pbmcuCgpUbyBhdm9pZCBicmVhayBjaXJjdWxh ciwgd2UgaGF2ZSB0byBkZXRlY3QgaWYgd3JhcCBvY2N1cnMsIHVzZSBhIGxvb3AgdG8KY29weSBs aW5lcyBiZWZvcmUKd3JhcCwgcmVzZXQgdmdhY29uX3Njcm9sbGJhY2tfY3VyLT50YWlsIHRvIDAs IHRoZW4gdXNlIGFub3RoZXIgbG9vcCB0bwpjb3B5IGxpbmVzIGFmdGVyIHdyYXAuCk9mIGNvdXJz ZSB0aGUgMiBsb29wIGNhbiBiZSBjb21iaW5lIGludG8gMiBtZW1jcHksIHRoYXQgd2lsbCBiZSBz aW1pbGFyCnRvIExpbnVzJ3MgcGF0Y2guCgpUaHVzLCBJIHRoaW5rIHRoZSBjaGVjayBzaG91bGQg YmUgaW4gdGhlIGxvb3AuClRoZSAyIGNoZWNrIGluIHRoZSBsb29wIHNlZW1zIHRvIGJlIHJlZHVu ZGFuY3ksIFpoYW5nIFhpYW8gZnJvbQpXaW5kcml2ZXIgc3VnZ2VzdCB0aGF0IHRoZSBjaGVjayBh ZnRlciB0aGUgbWVtY3B5IGNhbiBiZSByZW1vdmUuCkkgdGhpbmsgaGUgd2FzIHJpZ2h0LCBidXQg bm90IHZlcnkgc3VyZS4KVGh1cywgSSBzdWdnZXN0IHdlIGRpc2N1c3MgdGhhdCB0b28uCgpSZWdh cmRzLApZdW5oYWkgWmhhbmcgLyBOU0ZPQ1VTIFNlY3VyaXR5IFRlYW0KCgpPbiAyMDIwLzcvMjkg MTU6MDIsIEppcmkgU2xhYnkgd3JvdGU6Cj4gVGhlIGN1cnJlbnQgdmdhY29uJ3Mgc2Nyb2xsIHVw IGltcGxlbWVudGF0aW9uIHVzZXMgYSBjaXJjdXJhbCBidWZmZXIKPiBpbiB2Z2Fjb25fc2Nyb2xs YmFja19jdXIuIEl0IGFsd2F5cyBhZHZhbmNlcyB0YWlsIHRvIHByZXBhcmUgaXQgZm9yIHRoZQo+ IG5leHQgd3JpdGUgYW5kIGNhcHMgaXQgdG8gemVybyBpZiB0aGUgbmV4dCAtPnZjX3NpemVfcm93 IGJ5dGVzIHdvbid0IGZpdC4KPiAKPiBCdXQgd2hlbiB3ZSBjaGFuZ2UgdGhlIFZUIHNpemUgKGUu Zy4gYnkgVlRfUkVTSVpFKSBpbiB0aGUgbWVhbnRpbWUsIHRoZSBuZXcKPiBsaW5lIG1pZ2h0IG5v dCBmaXQgdG8gdGhlIGVuZCBvZiB0aGUgc2Nyb2xsYmFjayBidWZmZXIgaW4gdGhlIG5leHQKPiBh dHRlbXB0IHRvIHNjcm9sbC4gVGhpcyBsZWFkcyB0byB2YXJpb3VzIGNyYXNoZXMgYXMKPiB2Z2Fj b25fc2Nyb2xsYmFja191cGRhdGUgd3JpdGVzIG91dCBvZiB0aGUgYnVmZmVyOgo+ICBCVUc6IHVu YWJsZSB0byBoYW5kbGUgcGFnZSBmYXVsdCBmb3IgYWRkcmVzczogZmZmZmM5MDAwMDE3NTJhMAo+ ICAjUEY6IHN1cGVydmlzb3Igd3JpdGUgYWNjZXNzIGluIGtlcm5lbCBtb2RlCj4gICNQRjogZXJy b3JfY29kZSgweDAwMDIpIC0gbm90LXByZXNlbnQgcGFnZQo+ICBSSVA6IDAwMTA6bXV0ZXhfdW5s b2NrKzB4MTMvMHgzMAo+IC4uLgo+ICBDYWxsIFRyYWNlOgo+ICAgbl90dHlfd3JpdGUrMHgxYTAv MHg0ZDAKPiAgIHR0eV93cml0ZSsweDFhMC8weDJlMAo+IAo+IE9yIHRvIEtBU0FOIHJlcG9ydHM6 Cj4gQlVHOiBLQVNBTjogc2xhYi1vdXQtb2YtYm91bmRzIGluIHZnYWNvbl9zY3JvbGwrMHg1N2Ev MHg4ZWQKPiAKPiBTbyBjaGVjayB3aGV0aGVyIHRoZSBsaW5lIGZpdHMgaW4gdGhlIGJ1ZmZlciBh bmQgd3JhcCBpZiBuZWVkZWQuIERvIGl0Cj4gYmVmb3JlIHRoZSBsb29wIGFzIGNvbnNvbGVfc2Vt IGlzIGhlbGQgYW5kIC0+dmNfc2l6ZV9yb3cgY2Fubm90IGNoYW5nZQo+IGR1cmluZyB0aGUgZXhl Y3V0aW9uIG9mIHZnYWNvbl9zY3JvbGxiYWNrX2N1ci4gSWYgaXQgZG9lcyBjaGFuZ2UsIHdlCj4g bmVlZCB0byBlbnN1cmUgaXQgZG9lcyBub3QgY2hhbmdlIGVsc2V3aGVyZSwgbm90IGhlcmUuCj4g Cj4gQWxzbywgd2UgZG8gbm90IHNwbGl0IHRoZSB3cml0ZSBvZiBhIGxpbmUgaW50byBjaHVua3Mg YXMgdGhhdCB3b3VsZAo+IGJyZWFrIHRoZSBjb25zdW1lcnMgb2YgdGhlIGJ1ZmZlci4gVGhleSBl eHBlY3QgLT5jbnQsIC0+dGFpbCBhbmQgLT5zaXplCj4gdG8gYmUgaW4gaGFybW9ueSBhbmQgYWR2 YW5jZWQgYnkgLT52Y19zaXplX3Jvdy4KPiAKPiBJIGZvdW5kIGZldyByZXBvcnRzIG9mIHRoaXMg aW4gdGhlIHBhc3QsIHNvbWUgd2l0aCBwYXRjaGVzIGluY2x1ZGVkLAo+IHNvbWUgZXZlbiAyIHll YXJzIG9sZDoKPiBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sL0NBRUFqYW1zSm5HLT1UU093 Z1JiYmIzQjlaLVBBNjNvV21OUG9LWVdRPVo9K1g0OWFrZ0BtYWlsLmdtYWlsLmNvbS8KPiBodHRw czovL2xvcmUua2VybmVsLm9yZy9sa21sLzE1ODkzMzY5MzItMzU1MDgtMS1naXQtc2VuZC1lbWFp bC15YW5neWluZ2xpYW5nQGh1YXdlaS5jb20vCj4gCj4gVGhpcyBmaXhlcyBDVkUtMjAyMC0xNDMz MS4KPiAKPiBCaWcgdGhhbmtzIHRvIGd1eXMgbWVudGlvbmVkIGluIHRoZSBSZXBvcnRlZC1hbmQt ZGVidWdnZWQtYnkgbGluZXMgYmVsb3cKPiB3aG8gYWN0dWFsbHkgZm91bmQgdGhlIHJvb3QgY2F1 c2UuCj4gCj4gU2lnbmVkLW9mZi1ieTogSmlyaSBTbGFieSA8anNsYWJ5QHN1c2UuY3o+Cj4gUmVw b3J0ZWQtYW5kLWRlYnVnZ2VkLWJ5OiDlvKDkupHmtbcgPHpoYW5neXVuaGFpQG5zZm9jdXMuY29t Pgo+IFJlcG9ydGVkLWFuZC1kZWJ1Z2dlZC1ieTogWWFuZyBZaW5nbGlhbmcgPHlhbmd5aW5nbGlh bmdAaHVhd2VpLmNvbT4KPiBSZXBvcnRlZC1ieTogS3l1bmd0YWUgS2ltIDxrdDA3NTVAZ21haWwu Y29tPgo+IEZpeGVzOiAxNWJkYWI5NTljOWIgKFtQQVRDSF0gdmdhY29uOiBBZGQgc3VwcG9ydCBm b3Igc29mdCBzY3JvbGxiYWNrKQo+IENjOiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgt Zm91bmRhdGlvbi5vcmc+Cj4gQ2M6IEdyZWcgS0ggPGdyZWdAa3JvYWguY29tPgo+IENjOiBTb2xh ciBEZXNpZ25lciA8c29sYXJAb3BlbndhbGwuY29tPgo+IENjOiAiU3JpdmF0c2EgUy4gQmhhdCIg PHNyaXZhdHNhQGNzYWlsLm1pdC5lZHU+Cj4gQ2M6IEFudGhvbnkgTGlndW9yaSA8YWxpZ3VvcmlA YW1hem9uLmNvbT4KPiBDYzogU2VjdXJpdHkgT2ZmaWNlcnMgPHNlY3VyaXR5QGtlcm5lbC5vcmc+ Cj4gQ2M6IGxpbnV4LWRpc3Ryb3NAdnMub3BlbndhbGwub3JnCj4gQ2M6IFlhbmcgWWluZ2xpYW5n IDx5YW5neWluZ2xpYW5nQGh1YXdlaS5jb20+Cj4gQ2M6IEJhcnRsb21pZWogWm9sbmllcmtpZXdp Y3ogPGIuem9sbmllcmtpZUBzYW1zdW5nLmNvbT4KPiBDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+IENjOiBsaW51eC1mYmRldkB2Z2VyLmtlcm5lbC5vcmcKPiAtLS0KPiAgZHJp dmVycy92aWRlby9jb25zb2xlL3ZnYWNvbi5jIHwgNSArKysrKwo+ICAxIGZpbGUgY2hhbmdlZCwg NSBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vY29uc29sZS92 Z2Fjb24uYyBiL2RyaXZlcnMvdmlkZW8vY29uc29sZS92Z2Fjb24uYwo+IGluZGV4IGYwZjNkNTcz Zjg0OC4uMTMxOTRiYjI0NmY4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdmlkZW8vY29uc29sZS92 Z2Fjb24uYwo+ICsrKyBiL2RyaXZlcnMvdmlkZW8vY29uc29sZS92Z2Fjb24uYwo+IEBAIC0yNTAs NiArMjUwLDExIEBAIHN0YXRpYyB2b2lkIHZnYWNvbl9zY3JvbGxiYWNrX3VwZGF0ZShzdHJ1Y3Qg dmNfZGF0YSAqYywgaW50IHQsIGludCBjb3VudCkKPiAgCj4gIAlwID0gKHZvaWQgKikgKGMtPnZj X29yaWdpbiArIHQgKiBjLT52Y19zaXplX3Jvdyk7Cj4gIAo+ICsJLyogdmNfc2l6ZV9yb3cgbWln aHQgaGF2ZSBjaGFuZ2VkIGJ5IFZUX1JFU0laRSBpbiB0aGUgbWVhbnRpbWUgKi8KPiArCWlmICgo dmdhY29uX3Njcm9sbGJhY2tfY3VyLT50YWlsICsgYy0+dmNfc2l6ZV9yb3cpID49Cj4gKwkJCXZn YWNvbl9zY3JvbGxiYWNrX2N1ci0+c2l6ZSkKPiArCQl2Z2Fjb25fc2Nyb2xsYmFja19jdXItPnRh aWwgPSAwOwo+ICsKPiAgCXdoaWxlIChjb3VudC0tKSB7Cj4gIAkJc2NyX21lbWNweXcodmdhY29u X3Njcm9sbGJhY2tfY3VyLT5kYXRhICsKPiAgCQkJICAgIHZnYWNvbl9zY3JvbGxiYWNrX2N1ci0+ dGFpbCwKPiAKCi0tIArlvKDkupHmtbcK57u/55uf56eR5oqAIOWuieWFqOeglOeptumDqCDnoJTn qbblkZgK5Zyw5Z2A77ya5YyX5Lqs5biC5rW35reA5Yy65YyX5rS86LevNOWPt+ebiuazsOWkp+WO puS4ieWxggrpgq7nvJbvvJoxMDAwODkK55S16K+d77yaKDAxMCk2ODQzODg4MC04NTEwCuS8oOec n++8migwMTApNjg0MzczMjgK5omL5py677yaMTM2OTExOTI3ODIK6YKu566x77yaemhhbmd5dW5o YWlAbnNmb2N1cy5jb20K572R56uZ77yaaHR0cDovL3d3dy5uc2ZvY3VzLmNvbQpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK