[Webkit-unassigned] [Bug 18832] [curl] file upload does not work

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu May 1 13:32:59 PDT 2008


------- Comment #1 from arenevier at fdn.fr  2008-05-01 13:32 PDT -------
I'm compiled gtk-webkit with curl backend on a debian unstable, and file upload
does not work.

In send a negative Content-Length header to the server. 
For example, "Content-Length: -5191020756686863821" (with a file of 369 bytes).
Then, I usually get a message error from the server.

I think that's because libcurl is build with large file support (making
sizeof(curl_off_t) equal to 8), while webkit is not (making sizeof(curl_off_t)
equal to 4).

So, in libcurl (lib/http.c): 

#define FORMAT_OFF_T "lld" 
#define FORMAT_OFF_T "ld"


   result = add_bufferf(req_buffer,
                           "Content-Length: %" FORMAT_OFF_T "\r\n",

outputs a negative value.

In  WebCore/platform/network/curl/ResourceHandleManager.cpp, if I use, in
function ResourceHandleManager::setupPOST:

curl_easy_setopt(d->m_handle, CURLOPT_POSTFIELDSIZE, size);

instead of 

 curl_easy_setopt(d->m_handle, CURLOPT_POSTFIELDSIZE_LARGE, size)

Content-Length header is correct, and file upload works.

I tried to add AC_SYS_LARGEFILE in configure.ac, but it seems to create
aconfig.h which is not sourced by

For testing purpose, I have tried to put
#define _FILE_OFFSET_BITS 64 at the very top of
WebCore/platform/network/curl/ResourceHandleManager.cpp and it fixes the bug.

Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

More information about the webkit-unassigned mailing list