Merge branch 'em/missing-pager'

When a non-existent program is given as the pager, we tried to
reuse an uninitialized child_process structure and crashed, which
has been fixed.

* em/missing-pager:
  pager: fix crash when pager program doesn't exist
This commit is contained in:
Junio C Hamano 2021-12-10 14:35:15 -08:00
commit bb47eee9df
2 changed files with 8 additions and 1 deletions

View file

@ -8,7 +8,7 @@
#define DEFAULT_PAGER "less"
#endif
static struct child_process pager_process = CHILD_PROCESS_INIT;
static struct child_process pager_process;
static const char *pager_program;
/* Is the value coming back from term_columns() just a guess? */
@ -124,6 +124,8 @@ void setup_pager(void)
setenv("GIT_PAGER_IN_USE", "true", 1);
child_process_init(&pager_process);
/* spawn the pager */
prepare_pager_args(&pager_process, pager);
pager_process.in = -1;

View file

@ -760,4 +760,9 @@ test_expect_success TTY 'git returns SIGPIPE on propagated signals from pager' '
test_path_is_file pager-used
'
test_expect_success TTY 'non-existent pager doesnt cause crash' '
test_config pager.show invalid-pager &&
test_terminal git show
'
test_done