[U-Boot,v2,5/8] efi_loader: correctly determine length of empty device path

Message ID 20180416055910.12611-6-xypron.glpk@gmx.de
State Accepted
Delegated to: Alexander Graf
Headers show
Series
  • efi_loader: fixes for EFI_DEVICE_PATH_UTILITIES_PROTOCOL
Related show

Commit Message

Heinrich Schuchardt April 16, 2018, 5:59 a.m.
efi_dp_size() is meant to return the device path length without the end
node.

The length of a device path containing only an end node was incorrectly
reported as 4.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
v2
	no change
---
 lib/efi_loader/efi_device_path.c | 2 ++
 1 file changed, 2 insertions(+)

Patch

diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c
index 531a754427..46d3fea732 100644
--- a/lib/efi_loader/efi_device_path.c
+++ b/lib/efi_loader/efi_device_path.c
@@ -234,6 +234,8 @@  unsigned efi_dp_size(const struct efi_device_path *dp)
 {
 	unsigned sz = 0;
 
+	if (!dp || dp->type == DEVICE_PATH_TYPE_END)
+		return 0;
 	while (dp) {
 		sz += dp->length;
 		dp = efi_dp_next(dp);