forked from pool/cryptsetup
30 lines
844 B
Diff
30 lines
844 B
Diff
exit unsuccessfully on empty passphrase if input is a tty
|
|
|
|
allows user to press ctrl-d to abort
|
|
|
|
Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
|
|
|
|
Index: hashalot-0.3/hashalot.c
|
|
===================================================================
|
|
--- hashalot-0.3.orig/hashalot.c
|
|
+++ hashalot-0.3/hashalot.c
|
|
@@ -135,10 +135,14 @@ phash_lookup(const char phash_name[], si
|
|
static char *
|
|
xgetpass(const char *prompt)
|
|
{
|
|
- if (isatty(STDIN_FILENO)) /* terminal */
|
|
- return getpass(prompt); /* FIXME getpass(3) obsolete */
|
|
- else { /* file descriptor */
|
|
- char *pass = NULL;
|
|
+ char *pass = NULL;
|
|
+ if (isatty(STDIN_FILENO)) { /* terminal */
|
|
+ pass = getpass(prompt); /* FIXME getpass(3) obsolete */
|
|
+ if(!pass || !*pass) {
|
|
+ exit(EXIT_FAILURE);
|
|
+ }
|
|
+ return pass;
|
|
+ } else { /* file descriptor */
|
|
int buflen, i;
|
|
|
|
buflen=0;
|