Skip to content

BUG: Fix the ambiguous-filename path in nifti_findhdrname - #108

Open
hjmjohnson wants to merge 1 commit into
masterfrom
pr/fix-library-no-exit
Open

hjmjohnson wants to merge 1 commit into
masterfrom
pr/fix-library-no-exit

Conversation

@hjmjohnson

Copy link
Copy Markdown
Member

Re-submission of #54, reverted from master on 2026-09-24 so it can be
reviewed before merging. Content is unchanged from the original.

Base: master. Independent: nothing has to land before it.

Commits
  • BUG: Fix the ambiguous-filename path in nifti_findhdrname

Ordering for all the re-submitted work is tracked in #84.

Under FSLSTYLE the block that reports "Multiple possible filenames" has
three defects, and they cannot be separated.

  free(basename);                                  <- freed here
  char *gzname = calloc(...);                      <- unchecked
  strcpy(gzname, hdrname);                         <- used at once
  ...
    fprintf(stderr,"... %s\n", basename);          <- read after free
    exit(134);                                     <- kills the caller

basename is read by the message, so it cannot be freed at the top.
gzname goes straight into strcpy(), so it has to be checked.  And once
the function returns NULL instead of calling exit(), every path out has
to release what it holds, which is what ties the three together: moving
the free of basename decides what the error paths must free, and there
are no error paths to speak of until exit() is gone.

FSLSTYLE is off by default but is a supported configuration:
-DFSLSTYLE:BOOL=ON turns it on, and nifti2/Makefile defines it always.
Built and tested with -DFSLSTYLE=ON.

The nifti_image_read() half of the original change is a separate commit.

(cherry picked from commit 0ddf192)
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.

3 participants