Message ID | 20181129015522.15358-1-sam@mendozajonas.com |
---|---|
State | Accepted |
Headers | show |
Series | discover/boot: Fix talloc parent for resource URLs | expand |
On Thu, 2018-11-29 at 12:55 +1100, Samuel Mendoza-Jonas wrote: > The pb_urls for the boot resources use 'opt' as the talloc parent but > this may be NULL, for example if this is a user-created boot option. > Move the boot_task initialisation so it can be used as the talloc parent > instead. > > Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com> > --- > Alternate title: oh hey what's this branch from 2014? Merged as ef0c91e9 > > discover/boot.c | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-) > > diff --git a/discover/boot.c b/discover/boot.c > index ed67cd50..91fc46d6 100644 > --- a/discover/boot.c > +++ b/discover/boot.c > @@ -526,25 +526,31 @@ struct boot_task *boot(void *ctx, struct discover_boot_option *opt, > update_status(status_fn, status_arg, STATUS_INFO, > _("Booting %s"), boot_desc); > > + boot_task = talloc_zero(ctx, struct boot_task); > + boot_task->dry_run = dry_run; > + boot_task->status_fn = status_fn; > + boot_task->status_arg = status_arg; > + > if (cmd && cmd->boot_image_file) { > - image = pb_url_parse(opt, cmd->boot_image_file); > + image = pb_url_parse(boot_task, cmd->boot_image_file); > } else if (opt && opt->boot_image) { > image = opt->boot_image->url; > } else { > pb_log_fn("no image specified\n"); > update_status(status_fn, status_arg, STATUS_ERROR, > _("Boot failed: no image specified")); > + talloc_free(boot_task); > return NULL; > } > > if (cmd && cmd->initrd_file) { > - initrd = pb_url_parse(opt, cmd->initrd_file); > + initrd = pb_url_parse(boot_task, cmd->initrd_file); > } else if (opt && opt->initrd) { > initrd = opt->initrd->url; > } > > if (cmd && cmd->dtb_file) { > - dtb = pb_url_parse(opt, cmd->dtb_file); > + dtb = pb_url_parse(boot_task, cmd->dtb_file); > } else if (opt && opt->dtb) { > dtb = opt->dtb->url; > } > @@ -554,10 +560,6 @@ struct boot_task *boot(void *ctx, struct discover_boot_option *opt, > setenv("https_proxy", opt->proxy, 1); > } > > - boot_task = talloc_zero(ctx, struct boot_task); > - boot_task->dry_run = dry_run; > - boot_task->status_fn = status_fn; > - boot_task->status_arg = status_arg; > list_init(&boot_task->resources); > > lockdown_type = lockdown_status();
diff --git a/discover/boot.c b/discover/boot.c index ed67cd50..91fc46d6 100644 --- a/discover/boot.c +++ b/discover/boot.c @@ -526,25 +526,31 @@ struct boot_task *boot(void *ctx, struct discover_boot_option *opt, update_status(status_fn, status_arg, STATUS_INFO, _("Booting %s"), boot_desc); + boot_task = talloc_zero(ctx, struct boot_task); + boot_task->dry_run = dry_run; + boot_task->status_fn = status_fn; + boot_task->status_arg = status_arg; + if (cmd && cmd->boot_image_file) { - image = pb_url_parse(opt, cmd->boot_image_file); + image = pb_url_parse(boot_task, cmd->boot_image_file); } else if (opt && opt->boot_image) { image = opt->boot_image->url; } else { pb_log_fn("no image specified\n"); update_status(status_fn, status_arg, STATUS_ERROR, _("Boot failed: no image specified")); + talloc_free(boot_task); return NULL; } if (cmd && cmd->initrd_file) { - initrd = pb_url_parse(opt, cmd->initrd_file); + initrd = pb_url_parse(boot_task, cmd->initrd_file); } else if (opt && opt->initrd) { initrd = opt->initrd->url; } if (cmd && cmd->dtb_file) { - dtb = pb_url_parse(opt, cmd->dtb_file); + dtb = pb_url_parse(boot_task, cmd->dtb_file); } else if (opt && opt->dtb) { dtb = opt->dtb->url; } @@ -554,10 +560,6 @@ struct boot_task *boot(void *ctx, struct discover_boot_option *opt, setenv("https_proxy", opt->proxy, 1); } - boot_task = talloc_zero(ctx, struct boot_task); - boot_task->dry_run = dry_run; - boot_task->status_fn = status_fn; - boot_task->status_arg = status_arg; list_init(&boot_task->resources); lockdown_type = lockdown_status();
The pb_urls for the boot resources use 'opt' as the talloc parent but this may be NULL, for example if this is a user-created boot option. Move the boot_task initialisation so it can be used as the talloc parent instead. Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com> --- Alternate title: oh hey what's this branch from 2014? discover/boot.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)