Download raw body.
rpki-client: appease gcc
On Thu, Jul 25, 2024 at 09:35:26AM +0200, Theo Buehler wrote:
> For a while gcc has been whining about a use of uninitialized.
>
> /usr/src/usr.sbin/rpki-client/filemode.c: In function 'proc_filemode':
> /usr/src/usr.sbin/rpki-client/filemode.c:316:14: warning: 'a' may be used uninitialized in this function [-Wmaybe-uninitialized]
> 316 | if (a->cert->mft != NULL)
> | ~^~~~~~
> /usr/src/usr.sbin/rpki-client/filemode.c:355:22: note: 'a' was declared here
> 355 | struct auth *a;
> | ^
>
> While this is a false positive, this code is tricky enough that this is
> not entirely obvious. Add initialization and corresponding NULL checks.
Ah, gcc and its false positives. I hate such workarounds but it is
annoying to have to walk back and recheck the same warning over and over
again. Guess it is more important to optimise away code until it breaks
instead of fixing false positive warnings...
> Also switch order of aia and status since claudio mentioned he'd prefer
> that.
OK claudio@
> Index: filemode.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/rpki-client/filemode.c,v
> diff -u -p -r1.47 filemode.c
> --- filemode.c 17 Jun 2024 18:54:36 -0000 1.47
> +++ filemode.c 16 Jul 2024 10:30:45 -0000
> @@ -313,7 +313,7 @@ print_signature_path(const char *crl, co
> {
> if (crl != NULL)
> printf("Signature path: %s\n", crl);
> - if (a->cert->mft != NULL)
> + if (a != NULL && a->cert != NULL && a->cert->mft != NULL)
> printf(" %s\n", a->cert->mft);
> if (aia != NULL)
> printf(" %s\n", aia);
> @@ -352,7 +352,7 @@ proc_parser_file(char *file, unsigned ch
> char *aia = NULL;
> char *crl_uri = NULL;
> time_t *expires = NULL, *notafter = NULL;
> - struct auth *a;
> + struct auth *a = NULL;
> struct crl *c;
> const char *errstr = NULL, *valid;
> int status = 0;
> @@ -612,7 +612,7 @@ proc_parser_file(char *file, unsigned ch
> else {
> printf("\n");
>
> - if (status && aia != NULL) {
> + if (aia != NULL && status) {
> print_signature_path(crl_uri, aia, a);
> if (expires != NULL)
> printf("Signature path expires: %s\n",
>
--
:wq Claudio
rpki-client: appease gcc