Skip to content

Conversation

@cpackham-atlnz
Copy link

@cpackham-atlnz cpackham-atlnz commented Nov 4, 2025

When building using GCC 15 the following error is hit

  authvar.c: In function 'main':
  authvar.c:450:17: error: 'free' called on a pointer to an unallocated object '"NSS Certificate DB"' [-Werror=free-nonheap-object]
    450 |                 free(tokenname);
        |                 ^
  authvar.c:270:15: note: assigned here
    270 |         char *tokenname = "NSS Certificate DB";
        |               ^
  lto1: all warnings being treated as errors
  lto-wrapper: fatal error: gcc returned 1 exit status

This might be a false positive since the tokenname != origtoken condition should never be satisfied but it might also be an indication that lto or other optimisations have elided some code that they shouldn't have. Regardless tokenname is allocated on the stack and never modified so the call to free() and the origtoken local aren't needed and can be dropped.

When building using GCC 15 the following error is hit

  authvar.c: In function 'main':
  authvar.c:450:17: error: 'free' called on a pointer to an unallocated object '"NSS Certificate DB"' [-Werror=free-nonheap-object]
    450 |                 free(tokenname);
        |                 ^
  authvar.c:270:15: note: assigned here
    270 |         char *tokenname = "NSS Certificate DB";
        |               ^
  lto1: all warnings being treated as errors
  lto-wrapper: fatal error: gcc returned 1 exit status

This might be a false positive since the tokenname != origtoken
condition should never be satisfied but it might also be an indication
that lto or other optimisations have elided some code that they
shouldn't have. Regardless tokenname is allocated on the stack and never
modified so the call to free() and the origtoken local aren't needed and
can be dropped.

Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
@cpackham-atlnz
Copy link
Author

I first hit this with pesign-113 which ONIE packages. I can't reproduce the original error with pesign/main on fedora:rawhide as I suspect the optimization behaviour may have changed (there are certainly some cflags changes between 113 and main). Nevertheless the code is still unreachable so removing it is probably still a good idea.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant