]> git.ozlabs.org Git - petitboot/commitdiff
discover: detect unresolvable resources
authorJeremy Kerr <jk@ozlabs.org>
Thu, 2 May 2013 02:20:39 +0000 (10:20 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Mon, 6 May 2013 01:02:12 +0000 (09:02 +0800)
We don't want to call NULL resolve_resource callbacks.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/device-handler.c

index d3274bce28cff54f895b7510c0f5092aea19fe59..b2922b790560fd5089b5fda3a6f15ddcb9c12e73 100644 (file)
@@ -149,8 +149,17 @@ static void context_commit(struct device_handler *handler,
                        discover_server_notify_boot_option_add(handler->server,
                                                                opt->option);
                } else {
                        discover_server_notify_boot_option_add(handler->server,
                                                                opt->option);
                } else {
-                       list_add(&handler->unresolved_boot_options, &opt->list);
-                       talloc_steal(handler, opt);
+                       if (!opt->source->resolve_resource) {
+                               pb_log("parser %s gave us an unresolved "
+                                       "resource (%s), but no way to "
+                                       "resolve it\n",
+                                       opt->source->name, opt->option->id);
+                               talloc_free(opt);
+                       } else {
+                               list_add(&handler->unresolved_boot_options,
+                                               &opt->list);
+                               talloc_steal(handler, opt);
+                       }
                }
        }
 }
                }
        }
 }