[Bug 209546] [PATCH] libfetch: doesn't support HTTP 307 redirects

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon May 16 10:24:11 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209546

            Bug ID: 209546
           Summary: [PATCH] libfetch: doesn't support HTTP 307 redirects
           Product: Base System
           Version: 11.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Keywords: patch
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: novel at FreeBSD.org
          Keywords: patch

Created attachment 170348
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=170348&action=edit
proposed fix, v1

Currently, fetch(1) fails to download a file if there's HTTP 307 redirect for
it.

For example:

$ fetch https://jigsaw.w3.org/HTTP/300/307.html
fetch: https://jigsaw.w3.org/HTTP/300/307.html: Temporary Redirect
$

However, it should not fail on redirect unless -A flag was given.

Additionally, in verbose mode it manages to download that file.

This appears to happen because in "switch (http_get_reply(conn))" in
http_request_body() from http.c there's no case for HTTP_TEMP_REDIRECT, so it
fails to "default" that looks like this:

1816 default:
1817 http_seterr(conn->err);
1818 if (!verbose)
1819 goto ouch;

So in verbose mode it goes further and downloads the file, because
HTTP_REDIRECT() macro does include check for HTTP_TEMP_REDIRECT.

Fix by handing HTTP_TEMP_REDIRECT in the http_get_reply(conn) switch.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list