From nobody Mon Feb 9 04:25:06 2026 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 20C8B2609C5 for ; Wed, 3 Dec 2025 03:56:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764734170; cv=none; b=S0Ku1cb0gbOnQ5aaHIH6YQdR6XOcDWC0bIIEMCPlZcYEj5JrOVnhdmhe37irPEyjxquWUdW+41B70dh4zvsrK7/oi3NxD3ReAnmBU8T+SwhIJrOPq6gnYoezFk/3LYPW6lUcnK7Q+xZ0wahsbfHn+mfI3aST4VE6led3HQp2x1c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764734170; c=relaxed/simple; bh=PMlRGDGHmJC+DPTlafzIHuUYQiPFJGWZdHKXsipGnfw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=FVLk+nu8tNgd0BHmelqfcN+VIXRewgWQzzkpr87HsuiWk9WRDOkLK36zQZdsPVMbvn69suSrB4Ra3tF5qyStkloEKpZS48xTz5J9zPu46uFXBKfXf5le6bDDXM60CXvPEC1Hf3zdIVd2dhIsZ//DUyMXEyHabD9N+PkpH/mlulQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=cse.iitm.ac.in; spf=pass smtp.mailfrom=cse.iitm.ac.in; dkim=pass (2048-bit key) header.d=cse-iitm-ac-in.20230601.gappssmtp.com header.i=@cse-iitm-ac-in.20230601.gappssmtp.com header.b=2Ati4iUM; arc=none smtp.client-ip=209.85.210.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=cse.iitm.ac.in Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cse.iitm.ac.in Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cse-iitm-ac-in.20230601.gappssmtp.com header.i=@cse-iitm-ac-in.20230601.gappssmtp.com header.b="2Ati4iUM" Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-7ad1cd0db3bso4999745b3a.1 for ; Tue, 02 Dec 2025 19:56:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cse-iitm-ac-in.20230601.gappssmtp.com; s=20230601; t=1764734164; x=1765338964; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=tAaOe3I4qqbjiAbuFCLi0zuJzOlC1rPEZWLT+Z/CQgA=; b=2Ati4iUM42G+qfoc/qMwoWq76HddJFlAjPtI4SBEsbg1sbzrL47Ip5Nm/GrkHJ1AKm It/dQZzif8DJ8zfDhrBOog+o7d8Ez09iYYI+y1b9ok4w0sxZkRHArIInSetbDJxd7DD1 CVyyho9/NpTAZ8Zo6FMY1j1Jks1UPQcAxzeWUIYvI6RyBZDcte/VIPUD1g858LWzvHof ITdQCfUD0UTDEocYIx3Tc/d971TCh4TR0X6jrUu0yLotbMHbERDwAPnABsQgax0dTFcb +NgDDqRoavWeKM0nxX5cz48O85jn/C3wmGH6RUXb2Gmf/wKNI/7pBbOoLSCXCvtjUN3H uBoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764734164; x=1765338964; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=tAaOe3I4qqbjiAbuFCLi0zuJzOlC1rPEZWLT+Z/CQgA=; b=HIRv7gNFcF0agQO+Lisr3r/Txo5M+8vZ5lKoqBdcbjbLhXtSW6Trt4tyKVtfitcWYV jyTiCD2xlJNAPUkPmQ9OmzLiMxsElGOvG8lrD1u7YKztzAtjZKO9l99gVH4HR9KmZ5G5 XAmmF8cnNmB7+iRo68I4qzaUKO5i0jAJ4ER1dkNnhqdOOKgR5qRUL0pA9bkpE8J6Zosx JRIaSFIsNhnS7FMxpdOCxz7wI2zeMuu5RR2n4qniMVzCoM0YUVO3JGpBUvMiCeIGZEwS gTX5DRi4sHMLWN8ibZP812AAhNnei1AtYIuwGK4VuGqjt5+VIh4fWQtKLYfbxs4cZAe3 jFGw== X-Forwarded-Encrypted: i=1; AJvYcCVmc3c17ce/tWab1ZseTf72egOSiYad0qZOGfZqeIIWyYGJ0qi/vybM642fJ+t46n75YAuCvCVkfFJwbhM=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9cmdbRM+9X3dNbsnn1ggQ3cE8HpceFieS42uA5uNHocngJkvu lWVVKf6Ok/noVnRTD3HoOHf+Ur6HOeqqdCyiBx/HKxjVLt1WxoYJ+1tGJK0yYdpwuVE= X-Gm-Gg: ASbGncvBzGkJRuDIFFaXIgwa9k7RJbb5dEdNDiC9cEOa7MyMx6Wg3oCFuW06APXIDNS l5oooDzwQ8KxppwsgqIFmv+wBSIf5NNZGZDZ3hRmmvk0aX7WVmxL6tmVpMWzeWI9Ju8Uj3O+kfO rv4q5HteS0jOl0n5H3OF7AToMSxWBKOZU21uRApoN7bfZHwklDPaTBxiEmTqPOHjEDrQrTT/P2o UDmH34ooaNhHqd3V0hN1L76IHcAggD0kF7NZCYf0PbCa1DtNXQyHhBuvKd82qPnJJ6NE09YmKj7 dPLLyiQeNcB1uxmdULsG5ctA2/ec2hecpM4QJo4Vh8vWRrpp/SGTPITGUzMT15Nhhd+mR6hGz2f E0AAvax9HKKjyI1KSLyQOQ5hbIChip2raGgDyVut4VStBYUnKpnfGRAKgZUtpUSGVjGHzK1Eht/ 2YH2u5rROu16ZxbIVtaWoGMKYZ X-Google-Smtp-Source: AGHT+IFef9AGSAm8GKX/qr/Br9lF5EWDpBydbgHDWnXJYMbMYZGYeYLEZP4+XBsg5LuvOZUhF/xKRg== X-Received: by 2002:a05:7022:91e:b0:119:e56b:98c0 with SMTP id a92af1059eb24-11df0cdb884mr855726c88.39.1764734163762; Tue, 02 Dec 2025 19:56:03 -0800 (PST) Received: from localhost.localdomain ([49.37.219.248]) by smtp.googlemail.com with ESMTPSA id a92af1059eb24-11dcb057cb0sm96287741c88.9.2025.12.02.19.55.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Dec 2025 19:56:03 -0800 (PST) From: Abdun Nihaal To: deller@gmx.de Cc: Abdun Nihaal , niederp@physik.uni-kl.de, tomi.valkeinen@ti.com, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] fbdev: ssd1307fb: fix potential page leak in ssd1307fb_probe() Date: Wed, 3 Dec 2025 09:25:44 +0530 Message-ID: <20251203035546.26849-1-nihaal@cse.iitm.ac.in> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The page allocated for vmem using __get_free_pages() is not freed on the error paths after it. Fix that by adding a corresponding __free_pages() call to the error path. Fixes: facd94bc458a ("fbdev: ssd1307fb: Allocate page aligned video memory.= ") Signed-off-by: Abdun Nihaal --- Compile tested only. Not tested on hardware. v1->v2: - Fix incorrect call to __free_pages with uninitialized values as pointed out by Helge Deller. Now, the patch uses vmem and vmem_size which hold valid values at the goto site. Thanks for catching. I'm sorry I overlooked this in v1. v1 link: https://lore.kernel.org/all/20251202191225.111661-1-nihaal@cse.iit= m.ac.in/ drivers/video/fbdev/ssd1307fb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307f= b.c index aa6cc0a8151a..83dd31fa1fab 100644 --- a/drivers/video/fbdev/ssd1307fb.c +++ b/drivers/video/fbdev/ssd1307fb.c @@ -680,7 +680,7 @@ static int ssd1307fb_probe(struct i2c_client *client) if (!ssd1307fb_defio) { dev_err(dev, "Couldn't allocate deferred io.\n"); ret =3D -ENOMEM; - goto fb_alloc_error; + goto fb_defio_error; } =20 ssd1307fb_defio->delay =3D HZ / refreshrate; @@ -757,6 +757,8 @@ static int ssd1307fb_probe(struct i2c_client *client) regulator_disable(par->vbat_reg); reset_oled_error: fb_deferred_io_cleanup(info); +fb_defio_error: + __free_pages(vmem, get_order(vmem_size)); fb_alloc_error: framebuffer_release(info); return ret; --=20 2.43.0