summaryrefslogtreecommitdiff
path: root/boot/pxe_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'boot/pxe_utils.c')
-rw-r--r--boot/pxe_utils.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c
index 038416203fc..836e4eb526c 100644
--- a/boot/pxe_utils.c
+++ b/boot/pxe_utils.c
@@ -444,7 +444,7 @@ static void label_boot_extension(struct pxe_context *ctx,
const struct extension *extension;
struct fdt_header *working_fdt;
struct alist *extension_list;
- int ret, dir_len, len;
+ int ret, dir_len, len = 0;
char *overlay_dir;
const char *slash;
ulong fdt_addr;
@@ -472,18 +472,16 @@ static void label_boot_extension(struct pxe_context *ctx,
slash = "/";
else
slash = "";
-
- dir_len = strlen(label->fdtdir) + strlen(slash) + 1;
- overlay_dir = calloc(1, len);
- if (!overlay_dir)
- return;
-
- snprintf(overlay_dir, dir_len, "%s%s", label->fdtdir,
- slash);
} else {
- dir_len = 2;
- snprintf(overlay_dir, dir_len, "/");
+ slash = "/";
}
+ dir_len = len + strlen(slash) + 1;
+
+ overlay_dir = calloc(1, dir_len);
+ if (!overlay_dir)
+ return;
+
+ snprintf(overlay_dir, dir_len, "%s%s", label->fdtdir ?: "", slash);
alist_for_each(extension, extension_list) {
char *overlay_file;