Commit ec3f269d authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

now strdups the cookielist inpointer before passed on, as the cookie function

modifies it
parent 1c388a52
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -784,21 +784,24 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
      break;

    if(strequal(argptr, "ALL")) {
      if (data->cookies == NULL) {
        break;
      }
      else {
      if(data->cookies) {
        /* clear all cookies */
        Curl_cookie_freelist(data->cookies->cookies);
        data->cookies->cookies = NULL;
        break;
      }
      break;
    }

    if(!data->cookies)
      /* if cookie engine was not running, activate it */
      data->cookies = Curl_cookie_init(data, NULL, NULL, TRUE);

    argptr = strdup(argptr);
    if(!argptr) {
      result = CURLE_OUT_OF_MEMORY;
      break;
    }

    if(checkprefix("Set-Cookie:", argptr))
      /* HTTP Header format line */
      Curl_cookie_add(data, data->cookies, TRUE, argptr + 11, NULL, NULL);
@@ -806,6 +809,8 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
    else
      /* Netscape format line */
      Curl_cookie_add(data, data->cookies, FALSE, argptr, NULL, NULL);

    free(argptr);
    break;
#endif /* CURL_DISABLE_COOKIES */