From 301dfe0043d084d030d9dc2320695a696740ad25 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Tue, 5 Mar 2013 17:20:29 +0100 Subject: [PATCH] xbps_configure_pkg: fail gracefully if metadata cannot be read. --- lib/package_configure.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/package_configure.c b/lib/package_configure.c index 21040595..e842dc67 100644 --- a/lib/package_configure.c +++ b/lib/package_configure.c @@ -116,10 +116,21 @@ xbps_configure_pkg(struct xbps_handle *xhp, /* internalize pkg dictionary from metadir */ pkgname = xbps_pkg_name(pkgver); - assert(pkgname); + if (pkgname == NULL) /* assume pkgname */ + pkgname = strdup(pkgver); + plist = xbps_xasprintf("%s/.%s.plist", xhp->metadir, pkgname); free(pkgname); + pkgmetad = prop_dictionary_internalize_from_file(plist); + if (pkgmetad == NULL) { + xbps_set_cb_state(xhp, XBPS_STATE_CONFIGURE_FAIL, + errno, pkgver, + "%s: [configure] cannot read metadata plist: %s", + pkgver, strerror(rv)); + return errno; + } + free(plist); assert(pkgmetad);