remove short-lived CURL_WRITEFUNC_OUT_OF_MEMORY
authorYang Tse <yangsita@gmail.com>
Mon, 26 Sep 2011 01:18:51 +0000 (03:18 +0200)
committerYang Tse <yangsita@gmail.com>
Mon, 26 Sep 2011 11:05:42 +0000 (13:05 +0200)
docs/libcurl/curl_easy_setopt.3
docs/libcurl/symbols-in-versions
include/curl/curl.h
lib/ftplistparser.c
lib/rtsp.c
lib/sendf.c
src/tool_cb_hdr.c
src/tool_cb_wrt.c

index b9d42b5..9f6f11d 100644 (file)
@@ -160,11 +160,6 @@ From 7.18.0, the function can return CURL_WRITEFUNC_PAUSE which then will
 cause writing to this connection to become paused. See
 \fIcurl_easy_pause(3)\fP for further details.
 
-From 7.22.1, the function can return CURL_WRITEFUNC_OUT_OF_MEMORY to indicate
-libcurl that an attempt to dynamically allocate memory from within the write
-callback itself has failed. This will abort the transfer and make libcurl
-return CURLE_OUT_OF_MEMORY.
-
 This function may be called with zero bytes data if the transferred file is
 empty.
 
index 5c985bd..028bb1a 100644 (file)
@@ -685,5 +685,4 @@ CURL_VERSION_SPNEGO             7.10.8
 CURL_VERSION_SSL                7.10
 CURL_VERSION_SSPI               7.13.2
 CURL_VERSION_TLSAUTH_SRP        7.21.4
-CURL_WRITEFUNC_OUT_OF_MEMORY    7.22.1
 CURL_WRITEFUNC_PAUSE            7.18.0
index 4f01826..062f788 100644 (file)
@@ -191,11 +191,6 @@ typedef int (*curl_progress_callback)(void *clientp,
    will signal libcurl to pause receiving on the current transfer. */
 #define CURL_WRITEFUNC_PAUSE 0x10000001
 
-/* If the write callback itself allocates memory dynamically and this fails
-   due to an out of memory condition, returning CURL_WRITEFUNC_OUT_OF_MEMORY
-   is the proper way to tell libcurl of this condition. */
-#define CURL_WRITEFUNC_OUT_OF_MEMORY 0x10000002
-
 typedef size_t (*curl_write_callback)(char *buffer,
                                       size_t size,
                                       size_t nitems,
index 12ee51d..bbf6e9e 100644 (file)
@@ -354,8 +354,6 @@ static CURLcode ftp_pl_insert_finfo(struct connectdata *conn,
   return CURLE_OK;
 }
 
-/* Curl_ftp_parselist is a write callback function */
-
 size_t Curl_ftp_parselist(char *buffer, size_t size, size_t nmemb,
                           void *connptr)
 {
@@ -367,10 +365,6 @@ size_t Curl_ftp_parselist(char *buffer, size_t size, size_t nmemb,
   unsigned long i = 0;
   CURLcode rc;
 
-  if(bufflen >= CURL_WRITEFUNC_PAUSE)
-    /* CURL_WRITEFUNC_PAUSE limits input size */
-    return CURL_WRITEFUNC_OUT_OF_MEMORY;
-
   if(parser->error) { /* error in previous call */
     /* scenario:
      * 1. call => OK..
@@ -378,9 +372,6 @@ size_t Curl_ftp_parselist(char *buffer, size_t size, size_t nmemb,
      * 3. (last) call => is skipped RIGHT HERE and the error is hadled later
      *    in wc_statemach()
      */
-    if(parser->error == CURLE_OUT_OF_MEMORY)
-      return CURL_WRITEFUNC_OUT_OF_MEMORY;
-
     return bufflen;
   }
 
@@ -397,12 +388,12 @@ size_t Curl_ftp_parselist(char *buffer, size_t size, size_t nmemb,
       parser->file_data = Curl_fileinfo_alloc();
       if(!parser->file_data) {
         parser->error = CURLE_OUT_OF_MEMORY;
-        return CURL_WRITEFUNC_OUT_OF_MEMORY;
+        return bufflen;
       }
       parser->file_data->b_data = malloc(FTP_BUFFER_ALLOCSIZE);
       if(!parser->file_data->b_data) {
         PL_ERROR(conn, CURLE_OUT_OF_MEMORY);
-        return CURL_WRITEFUNC_OUT_OF_MEMORY;
+        return bufflen;
       }
       parser->file_data->b_size = FTP_BUFFER_ALLOCSIZE;
       parser->item_offset = 0;
@@ -425,7 +416,7 @@ size_t Curl_ftp_parselist(char *buffer, size_t size, size_t nmemb,
         parser->file_data = NULL;
         parser->error = CURLE_OUT_OF_MEMORY;
         PL_ERROR(conn, CURLE_OUT_OF_MEMORY);
-        return CURL_WRITEFUNC_OUT_OF_MEMORY;
+        return bufflen;
       }
     }
 
index 77c1367..198c25d 100644 (file)
@@ -725,11 +725,6 @@ CURLcode rtp_client_write(struct connectdata *conn, char *ptr, size_t len)
   writeit = data->set.fwrite_rtp?data->set.fwrite_rtp:data->set.fwrite_func;
   wrote = writeit(ptr, 1, len, data->set.rtp_out);
 
-  if(CURL_WRITEFUNC_OUT_OF_MEMORY == wrote) {
-    failf (data, "Out of memory writing RTP data");
-    return CURLE_OUT_OF_MEMORY;
-  }
-
   if(CURL_WRITEFUNC_PAUSE == wrote) {
     failf (data, "Cannot pause RTP");
     return CURLE_WRITE_ERROR;
index e9d5c37..847090b 100644 (file)
@@ -459,11 +459,6 @@ CURLcode Curl_client_write(struct connectdata *conn,
       wrote = len;
     }
 
-    if(CURL_WRITEFUNC_OUT_OF_MEMORY == wrote) {
-      failf(data, "Out of memory writing body");
-      return CURLE_OUT_OF_MEMORY;
-    }
-
     if(CURL_WRITEFUNC_PAUSE == wrote)
       return pausewrite(data, type, ptr, len);
 
@@ -486,12 +481,6 @@ CURLcode Curl_client_write(struct connectdata *conn,
        regardless of the ftp transfer mode (ASCII/Image) */
 
     wrote = writeit(ptr, 1, len, data->set.writeheader);
-
-    if(CURL_WRITEFUNC_OUT_OF_MEMORY == wrote) {
-      failf(data, "Out of memory writing header");
-      return CURLE_OUT_OF_MEMORY;
-    }
-
     if(CURL_WRITEFUNC_PAUSE == wrote)
       /* here we pass in the HEADER bit only since if this was body as well
          then it was passed already and clearly that didn't trigger the pause,
index 6dcc9f4..2643ad2 100644 (file)
@@ -47,10 +47,6 @@ size_t tool_header_cb(void *ptr, size_t size, size_t nmemb, void *userdata)
   const size_t cb = size * nmemb;
   const char *end = (char*)ptr + cb;
 
-  if(cb >= CURL_WRITEFUNC_PAUSE)
-    /* CURL_WRITEFUNC_PAUSE limits input size */
-    return CURL_WRITEFUNC_OUT_OF_MEMORY;
-
   if(cb > 20 && checkprefix("Content-disposition:", str)) {
     const char *p = str + 20;
 
@@ -78,13 +74,12 @@ size_t tool_header_cb(void *ptr, size_t size, size_t nmemb, void *userdata)
       */
       len = (ssize_t)cb - (p - str);
       filename = parse_filename(p, len);
+      /* TODO: OOM handling - return (size_t)-1 ? */
       if(filename) {
         outs->filename = filename;
         outs->alloc_filename = TRUE;
         break;
       }
-      else
-        return CURL_WRITEFUNC_OUT_OF_MEMORY;
     }
   }
 
index 16edd71..3a2cd79 100644 (file)
@@ -51,10 +51,6 @@ size_t tool_write_cb(void *buffer, size_t sz, size_t nmemb, void *userdata)
    */
   const size_t err_rc = (sz * nmemb) ? 0 : 1;
 
-  if(sz * nmemb >= CURL_WRITEFUNC_PAUSE)
-    /* CURL_WRITEFUNC_PAUSE limits input size */
-    return CURL_WRITEFUNC_OUT_OF_MEMORY;
-
   if(!out->stream) {
     out->bytes = 0; /* nothing written yet */
     if(!out->filename) {