> On Mar 5, 2020, at 10:51 AM, Daniel Stenberg <dan...@haxx.se> wrote:
> 
> Here to just enable cookie-sharing but you never enable the cookie engine for 
> the second handle so while the cookies are known to the handle, it hasn't 
> been told to use them. This can probably be fixed by adding:
> 
>    curl_easy_setopt(easy2, CURLOPT_COOKIEFILE, "");
> 
> The reason this change is necessary, is because the previous behavior was 
> actually a bug that could lead to "accidental" use of cookies in the second 
> request. That isses was brought in #4429 back in September 2019, the fix 
> landed in 7.67.0:
> 
>  https://github.com/curl/curl/issues/4429

OK, thank you!

I saw that issue and assumed it might be related, but I didn’t try 
CURLOPT_COOKIEFILE on both easy objects because I thought that 
CURLOPT_COOKIEFILE/"" initialized a shared “cookie jar” rather than individual 
easy objects’ cookie engines. So it seemed like setting CURLOPT_COOKIEFILE/"" 
on easy2 would _clear_ the cookies.

Did that change not break applications out in the wild? It seems like it would 
have; I see the same auto-cookies behavior in 7.29 (CentOS 7) and 7.54 (macOS 
Mojave).

Would a PR to clarify the documentation on this point be acceptable? e.g., in 
curl_share_setopt(3)’s description of CURL_LOCK_DATA_COOKIE, something like:

---
Prior to 7.67, designating a cookie-sharing share object on an easy 
automatically enabled that easy object’s cookie engine. As of curl 7.67, 
though, for an easy object to use a cookie share it is necessary to explicitly 
initialize that easy object’s cookie engine, e.g., curl_easy_setopt(easy, 
CURLOPT_COOKIEFILE, "").
---

Regardless, thank you again!

-FG
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Reply via email to