diff options
Diffstat (limited to 'boot/pxe_utils.c')
| -rw-r--r-- | boot/pxe_utils.c | 20 |
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; |
