diff --git a/ChangeLog b/ChangeLog index 2f1aec19..e01bf13a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,6 @@ 2009-07-30 Milan Broz * Fix errors when compiled with LUKS_DEBUG. + * Print error when getline fails. 2009-07-28 Milan Broz * Pad luks header to 512 sector size. diff --git a/src/cryptsetup.c b/src/cryptsetup.c index af0ea607..179d3519 100644 --- a/src/cryptsetup.c +++ b/src/cryptsetup.c @@ -79,19 +79,23 @@ static struct action_type { /* Interface Callbacks */ static int yesDialog(char *msg) { - int r = 0; + char *answer = NULL; + size_t size = 0; + int r = 1; + if(isatty(0) && !opt_batch_mode) { - char *answer=NULL; - size_t size=0; - fprintf(stderr,"\nWARNING!\n========\n"); - fprintf(stderr,"%s\n\nAre you sure? (Type uppercase yes): ",msg); - if(getline(&answer,&size,stdin) == -1) + fprintf(stderr, "\nWARNING!\n========\n"); + fprintf(stderr, "%s\n\nAre you sure? (Type uppercase yes): ", msg); + if(getline(&answer, &size, stdin) == -1) { + perror("getline"); + free(answer); return 0; - if(strcmp(answer,"YES\n") == 0) - r = 1; + } + if(strcmp(answer, "YES\n")) + r = 0; free(answer); - } else - r = 1; + } + return r; }