From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Thu, 06 Aug 2026 13:08:21 +0200 Received: from mx1.white.stw.pengutronix.de ([2a0a:edc0:0:b01:1d::107]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wrvxU-000A52-1p for lore@lore.pengutronix.de; Thu, 06 Aug 2026 13:08:21 +0200 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) by mx1.white.stw.pengutronix.de (Postfix) with ESMTPS id 26677200F83 for ; Thu, 06 Aug 2026 13:08:21 +0200 (CEST) Authentication-Results: mx1.white.stw.pengutronix.de; dkim=pass header.d=lists.infradead.org header.s=bombadil.20210309 header.b=Ij+veqY4; spf=pass (mx1.white.stw.pengutronix.de: domain of "barebox-bounces+lore=pengutronix.de@lists.infradead.org" designates 2607:7c80:54:3::133 as permitted sender) smtp.mailfrom="barebox-bounces+lore=pengutronix.de@lists.infradead.org"; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=JUCvBFjOAUcgyX2PFRYbxUF0OEBo1v032vgZprWdh3k=; b=Ij+veqY4ZHpDhf5DcVNwn0oHlz j6MupSaWh/1Nuxg7w8qtAvyieK3Nm4QOdNDCcupoHexy2qiBtz37wCId07wPXObxDQhcuazO/kM+z L0nppNQrXpKI8NaVQ25VkcdLioorLUc0pUs9vR6a94N16EWwSFYiMeY+vESmXc0JneNDrQGwI9LKV DQ8RZGIVxB5W3VKzjg10CTddcOh8qLo2x9h9M5Qwo3n2LuPSX8iHfRvIPJj9uArgJGxcsKqCk0FIX 1z8+RON7L/YTRx/Bp27qToUcSTUoA0bzMGjDT+CxxsBBS5pe2H5NiC6AxeZm72hWUH+OK4iJL8SyS yqXOmucQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wrvwH-00000005cEG-2kPV; Thu, 06 Aug 2026 11:07:05 +0000 Received: from mx1.white.stw.pengutronix.de ([185.203.200.13]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wrvwE-00000005cDL-0otz for barebox@lists.infradead.org; Thu, 06 Aug 2026 11:07:04 +0000 Received: from drehscheibe.grey.stw.pengutronix.de (drehscheibe.grey.stw.pengutronix.de [IPv6:2a0a:edc0:0:c01:1d::a2]) (Authenticated sender: relay-from-drehscheibe.grey.stw.pengutronix.de) by mx1.white.stw.pengutronix.de (Postfix) with ESMTPSA id 2ECBB2000DC; Thu, 06 Aug 2026 13:07:00 +0200 (CEST) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wrvwC-00051J-09; Thu, 06 Aug 2026 13:07:00 +0200 Received: from [::1] (helo=dude05.red.stw.pengutronix.de) by dude05.red.stw.pengutronix.de with esmtp (Exim 4.98.2) (envelope-from ) id 1wrvwB-0000000Fmfi-3w74; Thu, 06 Aug 2026 13:06:59 +0200 From: Ahmad Fatoum To: barebox@lists.infradead.org Cc: Ahmad Fatoum Subject: [PATCH] efi: payload: gracefully handle OOM in initrd allocation Date: Thu, 6 Aug 2026 13:06:55 +0200 Message-ID: <20260806110658.3761972-1-a.fatoum@pengutronix.de> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260806_040702_384166_A6F50209 X-CRM114-Status: UNSURE ( 8.94 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -1.9 (-) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: An initrd can get quite big, so we should not assume that this an infallible allocation and instead propagate any OOM error code. Signed-off-by: Ahmad Fatoum --- efi/payload/handover.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) Content analysis details: (-1.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 0.0 DMARC_MISSING Missing DMARC policy X-BeenThere: barebox@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "barebox" X-Rspamd-Server: mx1 X-Rspamd-Queue-Id: 26677200F83 X-Stat-Signature: tuiggosc6f3ei19on61w119whyrfwrt6 X-Spamd-Result: default: False [-6.21 / 15.00]; BAYES_HAM(-3.00)[99.99%]; DWL_DNSWL_MED(-2.00)[infradead.org:dkim]; KNOWN_LIST_ID(-1.00)[barebox.lists.infradead.org]; MID_CONTAINS_FROM(1.00)[]; RCVD_DKIM_ARC_DNSWL_MED(-0.50)[]; R_MISSING_CHARSET(0.50)[]; RCVD_IN_DNSWL_MED(-0.40)[2607:7c80:54:3::133:from,2a0a:edc0:0:1101:1d::54:received]; R_SPF_ALLOW(-0.20)[+mx:c]; R_DKIM_ALLOW(-0.20)[lists.infradead.org:s=bombadil.20210309]; MAILLIST(-0.20)[mailman]; MIME_GOOD(-0.10)[text/plain]; RCVD_IN_DNSWL_LOW(-0.10)[2a0a:edc0:0:c01:1d::a2:received]; HAS_LIST_UNSUB(-0.01)[]; RCPT_COUNT_TWO(0.00)[2]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; DMARC_NA(0.00)[pengutronix.de]; RECEIVED_HELO_LOCALHOST(0.00)[]; RCVD_TLS_LAST(0.00)[]; FROM_NEQ_ENVFROM(0.00)[a.fatoum@pengutronix.de,barebox-bounces@lists.infradead.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM(-0.00)[-1.000]; TAGGED_FROM(0.00)[lore=pengutronix.de]; ASN(0.00)[asn:7247, ipnet:2607:7c80:54::/48, country:US]; RCVD_COUNT_FIVE(0.00)[5]; DKIM_TRACE(0.00)[lists.infradead.org:+]; FORGED_SENDER_MAILLIST(0.00)[] X-Rspamd-Action: no action An initrd can get quite big, so we should not assume that this an infallible allocation and instead propagate any OOM error code. Signed-off-by: Ahmad Fatoum --- efi/payload/handover.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/efi/payload/handover.c b/efi/payload/handover.c index bef726ae303c..544fdfb3c6ad 100644 --- a/efi/payload/handover.c +++ b/efi/payload/handover.c @@ -146,7 +146,13 @@ static int do_bootm_efi(struct image_data *data) ret = -errno; goto err_free; } - initrd = xmemalign(PAGE_SIZE, PAGE_ALIGN(size)); + initrd = memalign(PAGE_SIZE, PAGE_ALIGN(size)); + if (!initrd) { + free(tmp); + ret = -ENOMEM; + goto err_free; + } + memcpy(initrd, tmp, size); memset(initrd + size, 0, PAGE_ALIGN(size) - size); free(tmp); -- 2.47.3