mirror of
https://github.com/git/git.git
synced 2026-08-08 17:11:48 +00:00
mailsplit: move NULL check before first use of file handle
The `split_mbox()` function calls fileno(f) to check whether the input is a terminal, but the NULL check for f (from `fopen()`) does not happen until later. When the file cannot be opened, f is NULL, and `fileno(NULL)` is undefined behavior, typically crashing with a segmentation fault. Move the NULL check above the `isatty()`/`fileno()` call so the error path is taken before any use of the potentially-NULL handle. Pointed out by Coverity. Assisted-by: Claude Opus 4.6 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
d321f42c09
commit
775f1f2b19
@@ -225,14 +225,14 @@ static int split_mbox(const char *file, const char *dir, int allow_bare,
|
||||
FILE *f = !strcmp(file, "-") ? stdin : fopen(file, "r");
|
||||
int file_done = 0;
|
||||
|
||||
if (isatty(fileno(f)))
|
||||
warning(_("reading patches from stdin/tty..."));
|
||||
|
||||
if (!f) {
|
||||
error_errno("cannot open mbox %s", file);
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (isatty(fileno(f)))
|
||||
warning(_("reading patches from stdin/tty..."));
|
||||
|
||||
do {
|
||||
peek = fgetc(f);
|
||||
if (peek == EOF) {
|
||||
|
||||
Reference in New Issue
Block a user