From 94eb1328969b796e4ecce3a113fc6ba24c167254 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 14 May 2012 21:55:48 +0900 Subject: Fixed segmentation fault when Metalink has no valid file or no resource. --- src/tool_metalink.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/tool_metalink.c b/src/tool_metalink.c index b442fc0d7..d31502ab2 100644 --- a/src/tool_metalink.c +++ b/src/tool_metalink.c @@ -94,6 +94,10 @@ int parse_metalink(struct Configurable *config, const char *infile) if(r != 0) { return -1; } + if(metalink->files == NULL) { + fprintf(config->errors, "\nMetalink does not contain any file.\n"); + return 0; + } ml = new_metalink(metalink); if(config->metalink_list) { @@ -107,7 +111,11 @@ int parse_metalink(struct Configurable *config, const char *infile) for(files = metalink->files; *files; ++files) { struct getout *url; /* Skip an entry which has no resource. */ - if(!(*files)->resources[0]) continue; + if(!(*files)->resources) { + fprintf(config->errors, "\nFile %s does not have any resource.\n", + (*files)->name); + continue; + } if(config->url_get || ((config->url_get = config->url_list) != NULL)) { /* there's a node here, if it already is filled-in continue to -- cgit v1.2.3