From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v6 2/5] lib/scatterlist: Avoid potential scatterlist entry overflow Date: Thu, 3 Aug 2017 10:13:12 +0100 Message-ID: <20170803091312.22875-1-tvrtko.ursulin@linux.intel.com> References: <20170731185512.20010-2-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x243.google.com (mail-wr0-x243.google.com [IPv6:2a00:1450:400c:c0c::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id C39EA89DCF for ; Thu, 3 Aug 2017 09:13:21 +0000 (UTC) Received: by mail-wr0-x243.google.com with SMTP id g32so559601wrd.5 for ; Thu, 03 Aug 2017 02:13:21 -0700 (PDT) In-Reply-To: <20170731185512.20010-2-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org, Masahiro Yamada , Andy Shevchenko List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNpbmNlIHRo ZSBzY2F0dGVybGlzdCBsZW5ndGggZmllbGQgaXMgYW4gdW5zaWduZWQgaW50LCBtYWtlCnN1cmUg dGhhdCBzZ19hbGxvY190YWJsZV9mcm9tX3BhZ2VzIGRvZXMgbm90IG92ZXJmbG93IGl0IHdoaWxl CmNvYWxlc2NpbmcgcGFnZXMgdG8gYSBzaW5nbGUgZW50cnkuCgp2MjogRHJvcCByZWZlcmVuY2Ug dG8gZnV0dXJlIHVzZS4gVXNlIFVJTlRfTUFYLgp2MzogbWF4X3NlZ21lbnQgbXVzdCBiZSBwYWdl IGFsaWduZWQuCnY0OiBEbyBub3QgcmVseSBvbiBjb21waWxlciB0byBvcHRpbWlzZSBvdXQgdGhl IHJvdW5kZG93bi4KICAgIChKb29uYXMgTGFodGluZW4pCnY1OiBTaW1wbGlmaWVkIGxvb3BzIGFu ZCB1c2UgcG9zdC1pbmNyZW1lbnRzIHJhdGhlciB0aGFuCiAgICBwcmUtaW5jcmVtZW50cy4gVXNl IFBBR0VfTUFTSyBhbmQgZml4IGNvbW1lbnQgdHlwby4KICAgIChBbmR5IFNoZXZjaGVua28pCnY2 OiBDb21taXQgc3BlbGxpbmcgZml4LgoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2 cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IE1hc2FoaXJvIFlhbWFkYSA8eWFtYWRhLm1hc2Fo aXJvQHNvY2lvbmV4dC5jb20+CkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnClJldmll d2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IEpvb25h cyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IEFuZHkgU2hl dmNoZW5rbyA8YW5keS5zaGV2Y2hlbmtvQGdtYWlsLmNvbT4KLS0tCiBpbmNsdWRlL2xpbnV4L3Nj YXR0ZXJsaXN0LmggfCAgNiArKysrKysKIGxpYi9zY2F0dGVybGlzdC5jICAgICAgICAgICB8IDMx ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5z ZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9z Y2F0dGVybGlzdC5oIGIvaW5jbHVkZS9saW51eC9zY2F0dGVybGlzdC5oCmluZGV4IDIwNWFlZmI0 ZWQ5My4uNmRkMmRkYmM2MjMwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NjYXR0ZXJsaXN0 LmgKKysrIGIvaW5jbHVkZS9saW51eC9zY2F0dGVybGlzdC5oCkBAIC0yMSw2ICsyMSwxMiBAQCBz dHJ1Y3Qgc2NhdHRlcmxpc3QgewogfTsKIAogLyoKKyAqIFNpbmNlIHRoZSBhYm92ZSBsZW5ndGgg ZmllbGQgaXMgYW4gdW5zaWduZWQgaW50LCBiZWxvdyB3ZSBkZWZpbmUgdGhlIG1heGltdW0KKyAq IGxlbmd0aCBpbiBieXRlcyB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gb25lIHNjYXR0ZXJsaXN0IGVu dHJ5LgorICovCisjZGVmaW5lIFNDQVRURVJMSVNUX01BWF9TRUdNRU5UIChVSU5UX01BWCAmIFBB R0VfTUFTSykKKworLyoKICAqIFRoZXNlIG1hY3JvcyBzaG91bGQgYmUgdXNlZCBhZnRlciBhIGRt YV9tYXBfc2cgY2FsbCBoYXMgYmVlbiBkb25lCiAgKiB0byBnZXQgYnVzIGFkZHJlc3NlcyBvZiBl YWNoIG9mIHRoZSBTRyBlbnRyaWVzIGFuZCB0aGVpciBsZW5ndGhzLgogICogWW91IHNob3VsZCBv bmx5IHdvcmsgd2l0aCB0aGUgbnVtYmVyIG9mIHNnIGVudHJpZXMgZG1hX21hcF9zZwpkaWZmIC0t Z2l0IGEvbGliL3NjYXR0ZXJsaXN0LmMgYi9saWIvc2NhdHRlcmxpc3QuYwppbmRleCBkZWUwYzUw MDRlMmYuLjdiMmU3NGRhMmM0NCAxMDA2NDQKLS0tIGEvbGliL3NjYXR0ZXJsaXN0LmMKKysrIGIv bGliL3NjYXR0ZXJsaXN0LmMKQEAgLTM5NCwxNyArMzk0LDIyIEBAIGludCBzZ19hbGxvY190YWJs ZV9mcm9tX3BhZ2VzKHN0cnVjdCBzZ190YWJsZSAqc2d0LAogCXVuc2lnbmVkIGludCBvZmZzZXQs IHVuc2lnbmVkIGxvbmcgc2l6ZSwKIAlnZnBfdCBnZnBfbWFzaykKIHsKLQl1bnNpZ25lZCBpbnQg Y2h1bmtzOwotCXVuc2lnbmVkIGludCBpOwotCXVuc2lnbmVkIGludCBjdXJfcGFnZTsKKwljb25z dCB1bnNpZ25lZCBpbnQgbWF4X3NlZ21lbnQgPSBTQ0FUVEVSTElTVF9NQVhfU0VHTUVOVDsKKwl1 bnNpZ25lZCBpbnQgY2h1bmtzLCBjdXJfcGFnZSwgc2VnX2xlbiwgaTsKIAlpbnQgcmV0OwogCXN0 cnVjdCBzY2F0dGVybGlzdCAqczsKIAogCS8qIGNvbXB1dGUgbnVtYmVyIG9mIGNvbnRpZ3VvdXMg Y2h1bmtzICovCiAJY2h1bmtzID0gMTsKLQlmb3IgKGkgPSAxOyBpIDwgbl9wYWdlczsgKytpKQot CQlpZiAocGFnZV90b19wZm4ocGFnZXNbaV0pICE9IHBhZ2VfdG9fcGZuKHBhZ2VzW2kgLSAxXSkg KyAxKQotCQkJKytjaHVua3M7CisJc2VnX2xlbiA9IDA7CisJZm9yIChpID0gMTsgaSA8IG5fcGFn ZXM7IGkrKykgeworCQlzZWdfbGVuICs9IFBBR0VfU0laRTsKKwkJaWYgKHNlZ19sZW4gPj0gbWF4 X3NlZ21lbnQgfHwKKwkJICAgIHBhZ2VfdG9fcGZuKHBhZ2VzW2ldKSAhPSBwYWdlX3RvX3Bmbihw YWdlc1tpIC0gMV0pICsgMSkgeworCQkJY2h1bmtzKys7CisJCQlzZWdfbGVuID0gMDsKKwkJfQor CX0KIAogCXJldCA9IHNnX2FsbG9jX3RhYmxlKHNndCwgY2h1bmtzLCBnZnBfbWFzayk7CiAJaWYg KHVubGlrZWx5KHJldCkpCkBAIC00MTMsMTcgKzQxOCwyMSBAQCBpbnQgc2dfYWxsb2NfdGFibGVf ZnJvbV9wYWdlcyhzdHJ1Y3Qgc2dfdGFibGUgKnNndCwKIAkvKiBtZXJnaW5nIGNodW5rcyBhbmQg cHV0dGluZyB0aGVtIGludG8gdGhlIHNjYXR0ZXJsaXN0ICovCiAJY3VyX3BhZ2UgPSAwOwogCWZv cl9lYWNoX3NnKHNndC0+c2dsLCBzLCBzZ3QtPm9yaWdfbmVudHMsIGkpIHsKLQkJdW5zaWduZWQg bG9uZyBjaHVua19zaXplOwotCQl1bnNpZ25lZCBpbnQgajsKKwkJdW5zaWduZWQgaW50IGosIGNo dW5rX3NpemU7CiAKIAkJLyogbG9vayBmb3IgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBjaHVuayAq LwotCQlmb3IgKGogPSBjdXJfcGFnZSArIDE7IGogPCBuX3BhZ2VzOyArK2opCi0JCQlpZiAocGFn ZV90b19wZm4ocGFnZXNbal0pICE9CisJCXNlZ19sZW4gPSAwOworCQlmb3IgKGogPSBjdXJfcGFn ZSArIDE7IGogPCBuX3BhZ2VzOyBqKyspIHsKKwkJCXNlZ19sZW4gKz0gUEFHRV9TSVpFOworCQkJ aWYgKHNlZ19sZW4gPj0gbWF4X3NlZ21lbnQgfHwKKwkJCSAgICBwYWdlX3RvX3BmbihwYWdlc1tq XSkgIT0KIAkJCSAgICBwYWdlX3RvX3BmbihwYWdlc1tqIC0gMV0pICsgMSkKIAkJCQlicmVhazsK KwkJfQogCiAJCWNodW5rX3NpemUgPSAoKGogLSBjdXJfcGFnZSkgPDwgUEFHRV9TSElGVCkgLSBv ZmZzZXQ7Ci0JCXNnX3NldF9wYWdlKHMsIHBhZ2VzW2N1cl9wYWdlXSwgbWluKHNpemUsIGNodW5r X3NpemUpLCBvZmZzZXQpOworCQlzZ19zZXRfcGFnZShzLCBwYWdlc1tjdXJfcGFnZV0sCisJCQkg ICAgbWluX3QodW5zaWduZWQgbG9uZywgc2l6ZSwgY2h1bmtfc2l6ZSksIG9mZnNldCk7CiAJCXNp emUgLT0gY2h1bmtfc2l6ZTsKIAkJb2Zmc2V0ID0gMDsKIAkJY3VyX3BhZ2UgPSBqOwotLSAKMi45 LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=