diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/cookie.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/cookie.c b/lib/cookie.c index 0dc734571..c80dbcc1e 100644 --- a/lib/cookie.c +++ b/lib/cookie.c @@ -141,9 +141,17 @@ Curl_cookie_add(struct CookieInfo *c, name[0]=what[0]=0; /* init the buffers */ if(1 <= sscanf(ptr, "%" MAX_NAME_TXT "[^;=]=%" - MAX_COOKIE_LINE_TXT "[^;\r\n ]", + MAX_COOKIE_LINE_TXT "[^;\r\n]", name, what)) { - /* this is a legal <what>=<this> pair */ + /* this is a <name>=<what> pair */ + + /* Strip off trailing whitespace from the 'what' */ + int len=strlen(what); + while(len && isspace((int)what[len-1])) { + what[len-1]=0; + len--; + } + if(strequal("path", name)) { co->path=strdup(what); } @@ -166,7 +174,7 @@ Curl_cookie_add(struct CookieInfo *c, */ co->maxage = strdup(what); co->expires = - atoi((*co->maxage=='\"')?&co->maxage[1]:&co->maxage[0]); + atoi((*co->maxage=='\"')?&co->maxage[1]:&co->maxage[0]) + now; } else if(strequal("expires", name)) { co->expirestr=strdup(what); |