summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Brown2007-01-15 10:18:06 +0100
committerMichael Brown2007-01-15 10:18:06 +0100
commitafa752f5fbebf49fcd399f85d1db85ef29cefc03 (patch)
treeed9054fc05e71e45672066aaf9f1e1b507dd1b85 /src
parentMust free http on the error path; nothing else will do it (diff)
downloadipxe-afa752f5fbebf49fcd399f85d1db85ef29cefc03.tar.gz
ipxe-afa752f5fbebf49fcd399f85d1db85ef29cefc03.tar.xz
ipxe-afa752f5fbebf49fcd399f85d1db85ef29cefc03.zip
Protocol's get() method no longer takes ownership of the URI. HTTP is the
exception rather than the rule; we may as well keep things clean for other protocols.
Diffstat (limited to 'src')
-rw-r--r--src/net/tcp/http.c3
-rw-r--r--src/usr/fetch.c3
2 files changed, 1 insertions, 5 deletions
diff --git a/src/net/tcp/http.c b/src/net/tcp/http.c
index 346f5a83..3ae7b1e9 100644
--- a/src/net/tcp/http.c
+++ b/src/net/tcp/http.c
@@ -366,7 +366,6 @@ static void http_reap ( struct async *async ) {
struct http_request *http =
container_of ( async, struct http_request, async );
- free_uri ( http->uri );
free ( http );
}
@@ -385,8 +384,6 @@ static struct async_operations http_async_operations = {
* @v buffer Buffer into which to download file
* @v parent Parent asynchronous operation
* @ret rc Return status code
- *
- * If it returns success, this function takes ownership of the URI.
*/
int http_get ( struct uri *uri, struct buffer *buffer, struct async *parent ) {
struct http_request *http;
diff --git a/src/usr/fetch.c b/src/usr/fetch.c
index 9e3c2de6..71304bb2 100644
--- a/src/usr/fetch.c
+++ b/src/usr/fetch.c
@@ -86,7 +86,6 @@ int fetch ( const char *uri_string, userptr_t *data, size_t *len ) {
async_init_orphan ( &async );
if ( ( rc = download ( uri, &buffer, &async ) ) != 0 )
goto err;
- uri = NULL;
async_wait ( &async, &rc, 1 );
if ( rc != 0 )
goto err;
@@ -98,7 +97,7 @@ int fetch ( const char *uri_string, userptr_t *data, size_t *len ) {
/* Release temporary resources. The ebuffer storage is now
* owned by our caller, so we don't free it.
*/
-
+ free_uri ( uri );
return 0;
err: