NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

lib/44880: libfetch does not handle "307 Temporary Redirect" correctly



>Number:         44880
>Category:       lib
>Synopsis:       libfetch does not handle "307 Temporary Redirect" correctly
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    lib-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Apr 19 13:30:01 +0000 2011
>Originator:     Dan McGee
>Release:        N/A
>Organization:
Arch Linux
>Environment:
Linux galway 2.6.38-ARCH #1 SMP PREEMPT Wed Mar 30 08:47:36 CEST 2011 x86_64 
Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz GenuineIntel GNU/Linux
>Description:
libfetch is missing a case statement for HTTP_TEMP_REDIRECT in the code.

Note that the fix below is the simplest possible way to get things "working", 
but there are likely still some issues- e.g. HTTP_SEE_OTHER should do the 
redirect but always switch to use the "GET" method, HTTP_MOVED_TEMP follows 
this same behavior in practice on the web. HTTP_TEMP_REDIRECT however should 
reuse the same HTTP verb.
>How-To-Repeat:
Attempt to fetch from a site returning 307; libfetch will not correctly follow 
the redirect but will error out.
>Fix:
cvs diff: Diffing .
Index: http.c
===================================================================
RCS file: /cvsroot/pkgsrc/net/libfetch/files/http.c,v
retrieving revision 1.29
diff -u -r1.29 http.c
--- http.c      24 Jan 2010 19:10:35 -0000      1.29
+++ http.c      19 Apr 2011 13:25:52 -0000
@@ -974,6 +974,7 @@
                case HTTP_MOVED_PERM:
                case HTTP_MOVED_TEMP:
                case HTTP_SEE_OTHER:
+               case HTTP_TEMP_REDIRECT:
                        /*
                         * Not so fine, but we still have to read the
                         * headers to get the new location.



Home | Main Index | Thread Index | Old Index