From: Carl Worth Date: Tue, 1 Dec 2009 16:06:09 +0000 (-0800) Subject: notmuch setup: Exit if EOF is encountered at any prompt. X-Git-Tag: 0.1~274 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=eb0cf86c7a9d5cda464d4d36a9cac66f26b5529d;hp=5f0b2ece161b16321792d9ff2f76bcc33a3b6b42 notmuch setup: Exit if EOF is encountered at any prompt. If the user is explicitly providing EOF, then terminating the program is the most likely desired thing to do. This also avoids undefined behavior from continuing with an uninitialized response after ignoring the return value of getline(). --- diff --git a/notmuch-setup.c b/notmuch-setup.c index 5ec176d3..622bbaa6 100644 --- a/notmuch-setup.c +++ b/notmuch-setup.c @@ -100,12 +100,15 @@ notmuch_setup_command (unused (void *ctx), unsigned int i; int is_new; -#define prompt(format, ...) \ - do { \ - printf (format, ##__VA_ARGS__); \ - fflush (stdout); \ - getline (&response, &response_size, stdin); \ - chomp_newline (response); \ +#define prompt(format, ...) \ + do { \ + printf (format, ##__VA_ARGS__); \ + fflush (stdout); \ + if (getline (&response, &response_size, stdin) < 0) { \ + printf ("Exiting.\n"); \ + exit (1); \ + } \ + chomp_newline (response); \ } while (0) config = notmuch_config_open (ctx, NULL, &is_new);