On Wed, Jan 19, 2022 at 09:35:34AM +0100, Theo Buehler wrote:
> This is the straightforward way to fix the leak of nfile in case the
> repo isn't found. The other option would be to defer the strdup until
> after successful lookup, but that felt clunky. 

Yes, that's OK claudio@. I agree that this is the best way of fixing this.
 
> While I'm here: Any objections to silencing this annoying compiler
> warning in main.c? The other option would be to remove "file" and add it
> back once it's actually going to be used.

No need to silence this, I have a diff that will make use of file.
I will send it out today.
 
> Index: main.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/rpki-client/main.c,v
> retrieving revision 1.176
> diff -u -p -U5 -r1.176 main.c
> --- main.c    14 Jan 2022 15:00:23 -0000      1.176
> +++ main.c    19 Jan 2022 08:22:53 -0000
> @@ -427,12 +427,14 @@ queue_add_from_tal(struct tal *tal)
>       if ((nfile = strdup(nfile + 1)) == NULL)
>               err(1, NULL);
>  
>       /* Look up the repository. */
>       repo = ta_lookup(tal->id, tal);
> -     if (repo == NULL)
> +     if (repo == NULL) {
> +             free(nfile);
>               return;
> +     }
>  
>       /* steal the pkey from the tal structure */
>       data = tal->pkey;
>       tal->pkey = NULL;
>       entityq_add(NULL, nfile, RTYPE_CER, repo, data, tal->pkeysz, tal->id);
> @@ -769,10 +771,11 @@ main(int argc, char *argv[])
>               case 'e':
>                       rsync_prog = optarg;
>                       break;
>               case 'f':
>                       file = optarg;
> +                     (void)file;
>                       noop = 1;
>                       break;
>               case 'j':
>                       outformats |= FORMAT_JSON;
>                       break;
> 

-- 
:wq Claudio

Reply via email to