Den lör 5 feb. 2022 kl 23:13 skrev Daniel Stenberg <dan...@haxx.se>:

> On Sat, 5 Feb 2022, Henrik Holst wrote:
>
> > Anyway, I will take a look at it first and then come back with more info
> and
> > you can all decide then if the proposed changes are too hard to read or
> > unusual, I have no problem doing some some work that in the end will be
> > rejected.
>
> I like that!
>
Further investigation shows that this will probably not yield much. Looks
like many of the hostname uses comes from the curl binary via glob_url so
there is not much we can do in libcurl to prevent these.

However I did find that an a normal run to fetch curl.se (or any site
really) this happens:
henrik@Sineya:~/utveckling/repositories$ uftrace -a -- ./curl/src/curl -Ls '
https://curl.se/' -o /dev/null | grep strlen | grep certs
   0.251 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   0.140 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   0.170 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   0.140 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   0.160 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   0.150 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   0.210 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   0.141 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   0.170 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   7.244 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   0.170 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   0.250 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;
   0.231 us [ 42540] |
strlen("/etc/ssl/certs/ca-certificates.crt") = 34;

Now the strlen itself here is not the problem, the problem is that
Curl_setstropt is called 10 times and Curl_clone_primary_ssl_config is
called 3 times for a single run. Now I don't know how much of this is done
by libcurl and how much of this is done by the curl binary but it could be
something that someone could have a look at, aka why the cert file option
is set over and over again for what should be a single easy handle.

I get it that strings have to be strdup:ed around since c/curl doesn't use
reference counted strings, but still when a single threaded case does 10
strdup:s of the same string something looks fishy (which is not to say that
it is fishy, just that it have a potential to be).

/HH


> --
>
>   / daniel.haxx.se
>   | Commercial curl support up to 24x7 is available!
>   | Private help, bug fixes, support, ports, new features
>   | https://curl.se/support.html
>
-- 
Unsubscribe: https://lists.haxx.se/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Reply via email to