device_handler_boot_status(handler, status);
talloc_free(status);
- talloc_free(ctx);
+ talloc_unlink(handler, ctx);
return 0;
}
device_handler_boot_status(handler, status);
talloc_free(status);
- talloc_free(ctx);
+ talloc_unlink(handler, ctx);
return 0;
}
device_handler_boot_status(handler, status);
talloc_free(status);
- talloc_free(ctx);
+ talloc_unlink(handler, ctx);
return 0;
}
device_handler_discover_context_commit(handler, ctx);
- talloc_free(ctx);
+ talloc_unlink(handler, ctx);
status->type = BOOT_STATUS_INFO;
status->message = talloc_asprintf(status, _("Config file %s parsed"),
list_for_each_entry_safe(&ctx->boot_options, opt, tmp, list) {
list_remove(&opt->list);
+ /* All boot options need at least a kernel image */
+ if (!opt->boot_image || !opt->boot_image->url) {
+ pb_log("boot option %s is missing boot image, ignoring\n",
+ opt->option->id);
+ talloc_free(opt);
+ continue;
+ }
+
if (boot_option_resolve(opt, handler)) {
pb_log("boot option %s is resolved, "
"sending to clients\n",