Simon Josefsson <[email protected]> writes:
> Clang-analyze on the code did not raise any errors in the core library,
> but some other minor issues in other code:
Thanks, I've reviewed the code in questions:
> API
> Argument with 'nonnull' attribute passed null
> tools/sexp-conv.c
> 274
This is a call to strtol.
int width = strtol(optarg, &end , 0);
optarg shouldn't be NULL, but that's not really nettle's responsibility
(-w has a required argument in the getopt_long call). Warning seems to
be a false positive.
> Dead store
> Dead assignment
> examples/io.c
> 88
> Dead store
> Dead assignment
> examples/io.c
> 90
This is a minor real bug.
> Logic error
> Dereference of null pointer
> tools/nettle-hash.c
> 204
> Logic error
> Dereference of null pointer
> tools/nettle-hash.c
> 205
This is
length = alg->digest_size;
else if (length > alg->digest_size)
and there's an if (!alg) die(...) earlier, where (at least for gcc) die
is declared as __attribute((__noreturn__)). Warning seems to be a false
positive.
But there's a related copy&paste error, since werror has the same
declaration and it *does* return,
> Logic error
> Dereference of null pointer
> examples/io.c
> 123
buffer[done] = '\0';
buffer is return value from a realloc call with a NULL check and return.
The logic using feof and ferror looks a bit suspicious, but as long as
feof is false just after fopen, things should be ok (and feof should not
be set until one attempts to read).
Thanks,
/Niels
--
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.
_______________________________________________
nettle-bugs mailing list
[email protected]
http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs