diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/mime.c | 14 | ||||
| -rw-r--r-- | lib/mime.h | 7 | 
2 files changed, 7 insertions, 14 deletions
| diff --git a/lib/mime.c b/lib/mime.c index ca492d11a..48147d4f5 100644 --- a/lib/mime.c +++ b/lib/mime.c @@ -5,7 +5,7 @@   *                            | (__| |_| |  _ <| |___   *                             \___|\___/|_| \_\_____|   * - * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.   *   * This software is licensed as described in the file COPYING, which   * you should have received as part of this distribution. The terms @@ -1122,8 +1122,6 @@ void curl_mime_free(curl_mime *mime)        Curl_mime_cleanpart(part);        free(part);      } - -    free(mime->boundary);      free(mime);    }  } @@ -1220,18 +1218,10 @@ curl_mime *curl_mime_init(struct Curl_easy *easy)      mime->firstpart = NULL;      mime->lastpart = NULL; -    /* Get a part boundary. */ -    mime->boundary = malloc(24 + MIME_RAND_BOUNDARY_CHARS + 1); -    if(!mime->boundary) { -      free(mime); -      return NULL; -    } -      memset(mime->boundary, '-', 24); -    if(Curl_rand_hex(easy, (unsigned char *) mime->boundary + 24, +    if(Curl_rand_hex(easy, (unsigned char *) &mime->boundary[24],                       MIME_RAND_BOUNDARY_CHARS + 1)) {        /* failed to get random separator, bail out */ -      free(mime->boundary);        free(mime);        return NULL;      } diff --git a/lib/mime.h b/lib/mime.h index 4d5c70404..ea34a75a6 100644 --- a/lib/mime.h +++ b/lib/mime.h @@ -7,7 +7,7 @@   *                            | (__| |_| |  _ <| |___   *                             \___|\___/|_| \_\_____|   * - * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.   *   * This software is licensed as described in the file COPYING, which   * you should have received as part of this distribution. The terms @@ -88,13 +88,16 @@ typedef struct {    size_t offset;              /* State-dependent offset. */  }  mime_state; +/* mimimum buffer size for the boundary string */ +#define MIME_BOUNDARY_LEN (24 + MIME_RAND_BOUNDARY_CHARS + 1) +  /* A mime multipart. */  struct curl_mime_s {    struct Curl_easy *easy;          /* The associated easy handle. */    curl_mimepart *parent;           /* Parent part. */    curl_mimepart *firstpart;        /* First part. */    curl_mimepart *lastpart;         /* Last part. */ -  char *boundary;                  /* The part boundary. */ +  char boundary[MIME_BOUNDARY_LEN]; /* The part boundary. */    mime_state state;                /* Current readback state. */  }; | 
