Re: [patch] Use inttypes macros for size_t format string
- Subject: Re: [patch] Use inttypes macros for size_t format string
- From: g4-lisz@xxxxxxxxxxxx
- Reply-to: libssh@xxxxxxxxxx
- Date: Wed, 15 Jan 2020 16:25:44 +0100
- To: libssh@xxxxxxxxxx
On 15.01.20 14:35, Jakub Jelen wrote:
> On Wed, 2020-01-15 at 13:01 +0100, g4-lisz@xxxxxxxxxxxx wrote:
>> Hi there, here's a patch for fixing a printf format string issue when
>> compiling with MinGW (and possibly other "architectures"...).
>> A big thanks to Zdenek OGAR Skalak for the hint!
> Looks good to me. Grepping through the rest of the code shows that
> there will most probably be more issues like this:
> $ git grep "PRIdS" | wc -l
> $ git grep "%zu" | wc -l
> Could you check also the other cases to make sure we can address it in
> the whole codebase?
Actually, `size_t` is unsigned. So IMHO `PRIuS` should be the format
But in priv.h we have only
#define PRIdS "zd"
#define PRIdS "Id"
So maybe we should replace this with `PRIuS` and `zu` / `Iu`?
This would at least solve the situation in dh-gex.c:408 where we have:
rc = fscanf(moduli,
"%31s %zu %zu %zu %zu %31s %4095s\n",
and type, tests, tries and size are of size_t. Or we have to change them
to ssize_t, but then also the `best_size` argument of
ssh_retrieve_dhgroup_file() had to be signed.
What you think?
Archive administrator: firstname.lastname@example.org