From 0bd5a0185d24db0de2a88ab063c6d707a9bcc968 Mon Sep 17 00:00:00 2001 From: Tomas Mlcoch Date: Mon, 13 May 2013 13:18:31 +0200 Subject: [PATCH] locate_metadata: Add error check for locating metadata call. --- src/load_metadata.c | 9 ++++++++- src/locate_metadata.c | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/load_metadata.c b/src/load_metadata.c index e77a42b..acc7435 100644 --- a/src/load_metadata.c +++ b/src/load_metadata.c @@ -1399,11 +1399,18 @@ cr_metadata_locate_and_load_xml(cr_Metadata md, { int ret; struct cr_MetadataLocation *ml; + GError *tmp_err = NULL; assert(md); assert(repopath); - ml = cr_locate_metadata(repopath, 1, NULL); + ml = cr_locate_metadata(repopath, 1, &tmp_err); + if (tmp_err) { + int code = tmp_err->code; + g_propagate_error(err, tmp_err); + return code; + } + ret = cr_metadata_load_xml(md, ml, err); cr_metadatalocation_free(ml); diff --git a/src/locate_metadata.c b/src/locate_metadata.c index 5b583a6..6cf7e05 100644 --- a/src/locate_metadata.c +++ b/src/locate_metadata.c @@ -417,7 +417,7 @@ cr_locate_metadata(const char *in_repopath, int ignore_sqlite, GError **err) assert(in_repopath); assert(!err || *err == NULL); - // XXX: err is not used in this function yet + // XXX: err is not really used in this function yet // repopath must ends with slash @@ -445,6 +445,13 @@ cr_locate_metadata(const char *in_repopath, int ignore_sqlite, GError **err) ret->original_url = g_strdup(in_repopath); g_free(repopath); + + // XXX + if (!ret) { + g_set_error(err, CR_LOCATE_METADATA_ERROR, CRE_NODIR, + "Cannot locate metadata"); + } + return ret; } -- 2.7.4