summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Beckett <dave@dajobe.org>2021-11-21 21:41:50 -0800
committerDave Beckett <dave@dajobe.org>2021-11-21 21:41:50 -0800
commit89143b5bd04277fe8d7907cf89f7bf573efcb40a (patch)
treee58379246d0ae18b2043f77fb6b4016ff9f3774b
parent05e5d9d26c84f64c3b7ae89a53eb8da557b7e167 (diff)
downloadraptor-89143b5bd04277fe8d7907cf89f7bf573efcb40a.tar.gz
Fix leak on failure of WWW moduel methods
(raptor_grddl_fetch_uri): On WWW call failures, free up www object before error return. [coverity CID 343353]
-rw-r--r--src/raptor_grddl.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/raptor_grddl.c b/src/raptor_grddl.c
index f419164b..b54d8c88 100644
--- a/src/raptor_grddl.c
+++ b/src/raptor_grddl.c
@@ -927,18 +927,18 @@ raptor_grddl_fetch_uri(raptor_parser* rdf_parser,
return 1;
if(raptor_www_set_user_agent2(www, "grddl/0.1", 0))
- return 1;
+ goto cleanup_www;
if(flags & FETCH_ACCEPT_XSLT) {
if(raptor_www_set_http_accept2(www, "application/xml", 0))
- return 1;
+ goto cleanup_www;
} else {
accept_h = raptor_parser_get_accept_header(rdf_parser);
if(accept_h) {
ret = raptor_www_set_http_accept2(www, accept_h, 0);
RAPTOR_FREE(char*, accept_h);
if(ret)
- return 1;
+ goto cleanup_www;
}
}
if(rdf_parser->uri_filter)
@@ -964,6 +964,11 @@ raptor_grddl_fetch_uri(raptor_parser* rdf_parser,
raptor_world_internal_set_ignore_errors(rdf_parser->world, 0);
return ret;
+
+cleanup_www:
+ raptor_free_www(www);
+
+ return 1;
}