diff --git a/libavformat/http.c b/libavformat/http.c index 2b503a1a08..eae780c2f8 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -210,7 +210,7 @@ static int process_line(URLContext *h, char *line, int line_count, int *new_location) { HTTPContext *s = h->priv_data; - char *tag, *p; + char *tag, *p, *end; /* end of header */ if (line[0] == '\0') @@ -222,14 +222,18 @@ static int process_line(URLContext *h, char *line, int line_count, p++; while (isspace(*p)) p++; - s->http_code = strtol(p, NULL, 10); + s->http_code = strtol(p, &end, 10); dprintf(NULL, "http_code=%d\n", s->http_code); /* error codes are 4xx and 5xx, but regard 401 as a success, so we * don't abort until all headers have been parsed. */ - if (s->http_code >= 400 && s->http_code < 600 && s->http_code != 401) + if (s->http_code >= 400 && s->http_code < 600 && s->http_code != 401) { + end += strspn(end, SPACE_CHARS); + av_log(NULL, AV_LOG_WARNING, "HTTP error %d %s\n", + s->http_code, end); return -1; + } } else { while (*p != '\0' && *p != ':') p++;