lib/url.c: Generic read/write data pointers
authorAlexander Klauer <Alexander.Klauer@itwm.fraunhofer.de>
Fri, 22 Feb 2013 12:06:53 +0000 (13:06 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 22 Feb 2013 22:22:21 +0000 (23:22 +0100)
Always interprets the pointer passed with the CURLOPT_WRITEDATA or
CURLOPT_READDATA options of curl_easy_setopt() as a void pointer in
order to avoid problems in environments where FILE and void pointers
have non-trivial conversion.

lib/url.c

index f9ce3ce..cbe0f46 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -1394,9 +1394,10 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
     break;
   case CURLOPT_FILE:
     /*
-     * FILE pointer to write to or include in the data write callback
+     * FILE pointer to write to. Or possibly
+     * used as argument to the write callback.
      */
-    data->set.out = va_arg(param, FILE *);
+    data->set.out = va_arg(param, void *);
     break;
   case CURLOPT_FTPPORT:
     /*
@@ -1437,7 +1438,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
      * FILE pointer to read the file to be uploaded from. Or possibly
      * used as argument to the read callback.
      */
-    data->set.in = va_arg(param, FILE *);
+    data->set.in = va_arg(param, void *);
     break;
   case CURLOPT_INFILESIZE:
     /*