diff --git a/notmuch-new.c b/notmuch-new.c index 0d06253d..55c3dc1d 100644 --- a/notmuch-new.c +++ b/notmuch-new.c @@ -711,13 +711,6 @@ notmuch_new_command (void *ctx, int argc, char *argv[]) } } - /* Setup our handler for SIGINT */ - memset (&action, 0, sizeof (struct sigaction)); - action.sa_handler = handle_sigint; - sigemptyset (&action.sa_mask); - action.sa_flags = SA_RESTART; - sigaction (SIGINT, &action, NULL); - config = notmuch_config_open (ctx, NULL, NULL); if (config == NULL) return 1; @@ -758,6 +751,15 @@ notmuch_new_command (void *ctx, int argc, char *argv[]) if (notmuch == NULL) return 1; + /* Setup our handler for SIGINT. We do this after having + * potentially done a database upgrade we this interrupt handler + * won't support. */ + memset (&action, 0, sizeof (struct sigaction)); + action.sa_handler = handle_sigint; + sigemptyset (&action.sa_mask); + action.sa_flags = SA_RESTART; + sigaction (SIGINT, &action, NULL); + talloc_free (dot_notmuch_path); dot_notmuch_path = NULL;