http: Clear the old URLContext pointer when closed
authorMartin Storsjö <martin@martin.st>
Fri, 1 Jun 2012 13:24:47 +0000 (16:24 +0300)
committerMartin Storsjö <martin@martin.st>
Fri, 1 Jun 2012 15:38:28 +0000 (18:38 +0300)
This fixes issues with opening http urls that have authentication
or redirects, introduced in commit e999b641.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/http.c

index 22600b4..61266df 100644 (file)
@@ -161,6 +161,7 @@ static int http_open_cnx(URLContext *h)
         if ((cur_auth_type == HTTP_AUTH_NONE || s->auth_state.stale) &&
             s->auth_state.auth_type != HTTP_AUTH_NONE && attempts < 4) {
             ffurl_close(hd);
+            s->hd = hd = NULL;
             goto redo;
         } else
             goto fail;
@@ -169,6 +170,7 @@ static int http_open_cnx(URLContext *h)
         if ((cur_proxy_auth_type == HTTP_AUTH_NONE || s->proxy_auth_state.stale) &&
             s->proxy_auth_state.auth_type != HTTP_AUTH_NONE && attempts < 4) {
             ffurl_close(hd);
+            s->hd = hd = NULL;
             goto redo;
         } else
             goto fail;
@@ -177,6 +179,7 @@ static int http_open_cnx(URLContext *h)
         && location_changed == 1) {
         /* url moved, get next */
         ffurl_close(hd);
+        s->hd = hd = NULL;
         if (redirects++ >= MAX_REDIRECTS)
             return AVERROR(EIO);
         /* Restart the authentication process with the new target, which