Thanks Vincent! On Mon, 24 Mar 2025 at 10:35, Vincent Stehlé <vincent.ste...@arm.com> wrote: > > When converting an IPv4 device path node to text, the > EFI_DEVICE_PATH_TO_TEXT_PROTOCOL will produce the following string: > > IPv4(5.6.7.8,TCP,UDP,0x6,DHCP,1.2.3.4,9.10.11.12,255.255.255.0) > > This string erroneously contains multiple protocols: TCP, UDP and 0x6. > > Add the missing `break' statements in the dp_msging() function to fix this > and obtain the following expected string instead: > > IPv4(5.6.7.8,TCP,DHCP,1.2.3.4,9.10.11.12,255.255.255.0) > > Fixes: aaf63429a112 ("efi_loader: add IPv4() to device path to text protocol") > Signed-off-by: Vincent Stehlé <vincent.ste...@arm.com> > Cc: Heinrich Schuchardt <xypron.g...@gmx.de> > Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org> > Cc: Adriano Cordova <adria...@gmail.com> > Cc: Tom Rini <tr...@konsulko.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodi...@linaro.org> > --- > lib/efi_loader/efi_device_path_to_text.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/lib/efi_loader/efi_device_path_to_text.c > b/lib/efi_loader/efi_device_path_to_text.c > index f6889cb7399..452ec1b2e8b 100644 > --- a/lib/efi_loader/efi_device_path_to_text.c > +++ b/lib/efi_loader/efi_device_path_to_text.c > @@ -181,10 +181,13 @@ static char *dp_msging(char *s, struct efi_device_path > *dp) > switch (idp->protocol) { > case IPPROTO_TCP: > s += sprintf(s, "TCP,"); > + break; > case IPPROTO_UDP: > s += sprintf(s, "UDP,"); > + break; > default: > s += sprintf(s, "0x%x,", idp->protocol); > + break; > } > s += sprintf(s, idp->static_ip_address ? "Static" : "DHCP"); > s += sprintf(s, ",%pI4", &idp->local_ip_address); > -- > 2.47.2 >