Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp64154pxf; Wed, 10 Mar 2021 00:00:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJzbpf74ghcufc+lhaECy6Wd9zBKo4RVcONW4OzrIJQK0YKuZgsvMWeVePt84Sedgxdufj4X X-Received: by 2002:a17:906:1494:: with SMTP id x20mr2306522ejc.101.1615363238257; Wed, 10 Mar 2021 00:00:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615363238; cv=none; d=google.com; s=arc-20160816; b=iSzedX5hwPZkRYJm7ittRtQW3WyuENkjCsHu81BXCfGaPiZGlbvKJT4ZqHVQ5Oj3NW fnixIabA2HPsZi1YtOfl9KVNjrn+nwV1PT8qyHrrrLMCp6WXrbzXp2ZDFvxsZX6u5WyW FZhrSzPQXtucBbES3NyByc2AWEXxJTktcX5jUS/QE2tLfCOaVfosWmMx5NdfLV4BCU2A uOJgFR9OWPsxbgYpxbYkLjWz8j19gi/DbIR36Opf9EMw1hMmO1PDUQGwCaNnXxDvuo6J CGHQNJxxUTWH34DynNp0Vagp26xFGaEYqhHeum9F7WJY2wNK156D0Bjf3k81XWR13RBT AoHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=dDHfNc51CgldvtatwYM1lsSynRkGjuxm5k6/u6903Hc=; b=pV7FFrRf22MdaIbIR9nxAlFjwH8psD4iefkekiK2l42pqSyw84n2xYGW58nI7OQ3X3 nKF2VN0UZ7O6TCxnoylICL6bUy1BoV38EE9wIRoEKjIhMhCQk1Gsy991qv2lUl5IoLOI VUlSqAkXwXbsI7Mv04N9UwlMQ5vkXvS6UESDl3CKLbjpnkkAtiQLCCtPkUhCwA4L6EDc LremX0ej3R0x+3+rKPmxZHYF3muyIUh0rmBOAu60/PD+3MKBWq3Cv7d/E/c1WT3t4H9R y2lazS11fOnB4bBGt2l7ybVDHD/JsOCOKgR9jw44RoGOfFLKd4HyUaIQY6UC+H3aYvx5 QHzw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=Qa2MtGNu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m23si11036805edq.397.2021.03.10.00.00.16; Wed, 10 Mar 2021 00:00:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=Qa2MtGNu; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231815AbhCJH66 (ORCPT + 99 others); Wed, 10 Mar 2021 02:58:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59520 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232419AbhCJH6w (ORCPT ); Wed, 10 Mar 2021 02:58:52 -0500 Received: from mail-il1-x131.google.com (mail-il1-x131.google.com [IPv6:2607:f8b0:4864:20::131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B4AA1C061760 for ; Tue, 9 Mar 2021 23:58:51 -0800 (PST) Received: by mail-il1-x131.google.com with SMTP id e2so14757712ilu.0 for ; Tue, 09 Mar 2021 23:58:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dDHfNc51CgldvtatwYM1lsSynRkGjuxm5k6/u6903Hc=; b=Qa2MtGNuff4eyItegNCe7pu9ngKvR9dshCz/I7c2oaf78qW2wnFYIiIdGrpy3JFSbq C71/jB3QMs8q+hLb1YEDkUpH/reUoqF4wY6aTgDCyEFkmnlJK2IAtm1jkz8z/XlTp+Cu CSHff+giLmF6zKKWiF4hLe1RNHitXgSL7mQ3w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dDHfNc51CgldvtatwYM1lsSynRkGjuxm5k6/u6903Hc=; b=aa+9TkNCMZOYEanPUlZEqi+DX70PWWOgDrEmUpTPxABAb9SNftIkw5AC5X4q6EKLDC XtEppSgLcAtC3sJFhKJCS/NawCSTpPlyNsHNKYE9YrhZr9a1Ys0YKx9hPW1j5bACd2Qq whZnhdhDAsCgqgd59E+mqYJkpjFDpvK9rAbuuDQ4n+2QNf41iG3wAiEmODCBUs1r+9el 8QJFHgN7zBzSjqkT+j5E5UxGlKdIJd6zOPATNSKgEs9fh8Jn2c/WRQdKCitqMn0cStPa mM4T/+GifoizKlXNPxb9KgOc4dxHnXpf2fSuQhXXg44HXTvi8PI0Z6dn3E/HsyzYM2x/ N39g== X-Gm-Message-State: AOAM532Cdb/tp4ohceGNB8GVoae5R4jWAvmI8V1ktJTjbUmEm+Sh65b+ zt1kfb3q9SS1SAS5w2ftxDoJNOag4b9AMqmZ X-Received: by 2002:a92:cda4:: with SMTP id g4mr1723384ild.20.1615363130946; Tue, 09 Mar 2021 23:58:50 -0800 (PST) Received: from mail-il1-f176.google.com (mail-il1-f176.google.com. [209.85.166.176]) by smtp.gmail.com with ESMTPSA id g14sm8708274ioc.38.2021.03.09.23.58.50 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 09 Mar 2021 23:58:50 -0800 (PST) Received: by mail-il1-f176.google.com with SMTP id f10so14709254ilq.5 for ; Tue, 09 Mar 2021 23:58:50 -0800 (PST) X-Received: by 2002:a92:3648:: with SMTP id d8mr1614657ilf.69.1615363129930; Tue, 09 Mar 2021 23:58:49 -0800 (PST) MIME-Version: 1.0 References: <20210309234317.1021588-1-ribalda@chromium.org> In-Reply-To: From: Ricardo Ribalda Date: Wed, 10 Mar 2021 08:58:39 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] media: videobuf2: Fix integer overrun in allocation To: Laurent Pinchart Cc: Tomasz Figa , Marek Szyprowski , Mauro Carvalho Chehab , Linux Media Mailing List , Linux Kernel Mailing List , stable@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Laurent On Wed, Mar 10, 2021 at 8:49 AM Laurent Pinchart wrote: > > Hi Ricardo, > > Thank you for the patch. Thank you! > > On Wed, Mar 10, 2021 at 12:43:17AM +0100, Ricardo Ribalda wrote: > > The plane_length is an unsigned integer. So, if we have a size of > > 0xffffffff bytes we incorrectly allocate 0 bytes instead of 1 << 32. > > > > Cc: stable@vger.kernel.org > > Fixes: 7f8414594e47 ("[media] media: videobuf2: fix the length check for mmap") > > Signed-off-by: Ricardo Ribalda > > --- > > drivers/media/common/videobuf2/videobuf2-core.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c > > index 02281d13505f..543da515c761 100644 > > --- a/drivers/media/common/videobuf2/videobuf2-core.c > > +++ b/drivers/media/common/videobuf2/videobuf2-core.c > > @@ -223,8 +223,10 @@ static int __vb2_buf_mem_alloc(struct vb2_buffer *vb) > > * NOTE: mmapped areas should be page aligned > > */ > > for (plane = 0; plane < vb->num_planes; ++plane) { > > + unsigned long size = vb->planes[plane].length; > > unsigned long is still 32-bit on 32-bit platforms. > > > + > > /* Memops alloc requires size to be page aligned. */ > > - unsigned long size = PAGE_ALIGN(vb->planes[plane].length); > > + size = PAGE_ALIGN(size); > > > > /* Did it wrap around? */ > > if (size < vb->planes[plane].length) > > Doesn't this address the issue already ? Yes and no. If you need to allocate 0xffffffff you are still affected by the underrun. The core will return an error instead of doing the allocation. (yes, I know it is a lot of memory for a buffer) > > > -- > Regards, > > Laurent Pinchart -- Ricardo Ribalda