From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 28 Aug 2026 14:15:41 +0200 Received: from mx1.white.stw.pengutronix.de ([185.203.200.13]) 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 1wzvUi-0089Uz-1C for lore@lore.pengutronix.de; Fri, 28 Aug 2026 14:15:41 +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 ECCC7200FE5 for ; Fri, 28 Aug 2026 14:15:40 +0200 (CEST) Authentication-Results: mx1.white.stw.pengutronix.de; dkim=pass header.d=lists.infradead.org header.s=bombadil.20210309 header.b=h69EaXgP; dmarc=none; 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" 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: Content-Type:MIME-Version:Date:Message-Id:Subject:References:In-Reply-To:To: From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=JhCahpfcFRmd16nZzkyZBIr4k0cKTIHAeGdnD2VyexA=; b=h69EaXgPTQGINnV8ne2L9N/2EG QZjTIvgh40djEZYw5m2AfauvaaVOOi7DusbQMQNc6gneNeiCdwA/GKFwLoGjV58hdDqeWwTmn2yOv cGFeiHae4fVzoI31a5C9tTjEdPxrySdar78dCwS4Odm7gRwxdN3zlp65HXWlLN4gRsmbXRCq49I7m p9FfSLGSq4DkTqAidJy705Yh8cXDuGO/yPSC/w8mgfaV5Sc4i1zsvGVfPomxmeCxnSpm1MVw5dKUs L4Ufh+3BYntodmf+dI4CT3y/xWTZpdqYqy3VJ17YyJq4VRQdealF0gL+HObjKCriOvhyRQdrN2oYu 2c7Uu8ZQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wzvTh-00000005iM0-29Ec; Fri, 28 Aug 2026 12:14:37 +0000 Received: from mx1.white.stw.pengutronix.de ([2a0a:edc0:0:b01:1d::107]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wzvTf-00000005iKS-0zYC for barebox@lists.infradead.org; Fri, 28 Aug 2026 12:14:36 +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 E6996200FE5; Fri, 28 Aug 2026 14:14:32 +0200 (CEST) Received: from dude02.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::28]) 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 1wzvTc-003ldu-2n; Fri, 28 Aug 2026 14:14:32 +0200 Received: from [::1] (helo=dude02.red.stw.pengutronix.de) by dude02.red.stw.pengutronix.de with esmtp (Exim 4.98.2) (envelope-from ) id 1wzvTc-00000001liq-3MPn; Fri, 28 Aug 2026 14:14:32 +0200 From: Sascha Hauer To: barebox@lists.infradead.org, Ahmad Fatoum In-Reply-To: <20260826114521.2919654-1-a.fatoum@pengutronix.de> References: <20260826114521.2919654-1-a.fatoum@pengutronix.de> Subject: Re: [PATCH] efi: loader: accept NULL DevicePath in LoadImage when SourceBuffer is given Message-Id: <178791927279.421663.3598324641369675379.b4-ty@pengutronix.de> Date: Fri, 28 Aug 2026 14:14:32 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Mailer: b4 0.14.3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260828_051435_428793_7A13C0B9 X-CRM114-Status: UNSURE ( 9.97 ) 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: On Wed, 26 Aug 2026 13:45:01 +0200, Ahmad Fatoum wrote: > The UEFI specification only requires DevicePath when no SourceBuffer is > given. Loading an image from memory with a NULL DevicePath is valid [...] Content analysis details: (-1.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender 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-Spamd-Result: default: False [-57.81 / 15.00]; RECEIVED_AUTHENTICATED_BY_MX1(-50.00)[]; BAYES_HAM(-3.00)[99.99%]; DWL_DNSWL_MED(-2.00)[infradead.org:dkim]; KNOWN_LIST_ID(-1.00)[barebox.lists.infradead.org]; RCVD_IN_DNSWL_MED(-0.60)[2a0a:edc0:0:c01:1d::a2:received,2a0a:edc0:0:1101:1d::28:received,2607:7c80:54:3::133:from]; RCVD_DKIM_ARC_DNSWL_MED(-0.50)[]; MAILLIST(-0.20)[mailman]; R_SPF_ALLOW(-0.20)[+mx:c]; R_DKIM_ALLOW(-0.20)[lists.infradead.org:s=bombadil.20210309]; MIME_GOOD(-0.10)[text/plain]; HAS_LIST_UNSUB(-0.01)[]; RECEIVED_HELO_LOCALHOST(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; DMARC_NA(0.00)[pengutronix.de]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:7247, ipnet:2607:7c80:54::/48, country:US]; DKIM_TRACE(0.00)[lists.infradead.org:+]; RCVD_COUNT_FIVE(0.00)[5]; FROM_NEQ_ENVFROM(0.00)[s.hauer@pengutronix.de,barebox-bounces@lists.infradead.org]; FROM_HAS_DN(0.00)[]; TAGGED_FROM(0.00)[lore=pengutronix.de]; NEURAL_HAM(-0.00)[-0.997]; RCVD_VIA_SMTP_AUTH(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; TO_DN_SOME(0.00)[]; FORGED_SENDER_MAILLIST(0.00)[] X-Rspamd-Action: no action X-Rspamd-Server: mx1 X-Stat-Signature: u3do89pfzyp55snu545egzdmgsb1gg5w X-Rspamd-Queue-Id: ECCC7200FE5 On Wed, 26 Aug 2026 13:45:01 +0200, Ahmad Fatoum wrote: > The UEFI specification only requires DevicePath when no SourceBuffer is > given. Loading an image from memory with a NULL DevicePath is valid and > results in a loaded image without device handle and file path. That's what > EDK2 does and what the U-Boot code this was imported from does as well, as > it ignores the result of efi_dp_split_file_path(). > > barebox on the other hand checks the result and as efi_dp_dup(NULL) returns > NULL, LoadImage fails with the misleading EFI_OUT_OF_RESOURCES. This breaks > chainloading from a barebox EFI payload running on top of the barebox EFI > loader: the payload passes the device path of its own device handle, which > it doesn't have when it was booted via QEMU's fw_cfg, so it passes NULL. > > [...] Applied, thanks! [1/1] efi: loader: accept NULL DevicePath in LoadImage when SourceBuffer is given https://git.pengutronix.de/cgit/barebox/commit/?id=5e86781197ad (link may not be stable) Best regards, -- Sascha Hauer