diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-05-02 10:20:39 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2013-05-06 09:02:12 +0800 |
commit | b155a07583e33d51313b5747b961f5075e7465b2 (patch) | |
tree | 0893fa13162f0ded19f18e607419a96212cae1a2 /discover/device-handler.c | |
parent | 100cb2cfc3ee4040ab969215e3cd8cc885f9efeb (diff) | |
download | talos-petitboot-b155a07583e33d51313b5747b961f5075e7465b2.tar.gz talos-petitboot-b155a07583e33d51313b5747b961f5075e7465b2.zip |
discover: detect unresolvable resources
We don't want to call NULL resolve_resource callbacks.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/device-handler.c')
-rw-r--r-- | discover/device-handler.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/discover/device-handler.c b/discover/device-handler.c index d3274bc..b2922b7 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -149,8 +149,17 @@ static void context_commit(struct device_handler *handler, 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); + } } } } |