diff options
Diffstat (limited to '')
-rw-r--r-- | src/passphrase.c | 16 | ||||
-rw-r--r-- | src/passphrase.h | 8 |
2 files changed, 7 insertions, 17 deletions
diff --git a/src/passphrase.c b/src/passphrase.c index 93cfd9f..a3ca289 100644 --- a/src/passphrase.c +++ b/src/passphrase.c @@ -21,8 +21,6 @@ #include <termios.h> #include <unistd.h> -#include "config.h" - #include "passphrase.h" @@ -38,7 +36,7 @@ static struct termios saved_stty; /** * Reads the passphrase from stdin * - * @return The passphrase, should be `free`:ed + * @return The passphrase, should be wiped `free`:ed, `NULL` on error */ char* get_passphrase(void) { @@ -52,11 +50,7 @@ char* get_passphrase(void) int c; if (rc == NULL) - { - perror("malloc"); - sleep(ERROR_SLEEP); - _exit(1); - } + return NULL; /* Read password until EOF or Enter, skip all \0 as that is probably not a part of the passphrase (good luck typing @@ -71,11 +65,7 @@ char* get_passphrase(void) *(rc + len++) = c; if (len == size) if ((rc = realloc(rc, (size <<= 1L) * sizeof(char))) == NULL) - { - perror("realloc"); - sleep(ERROR_SLEEP); - _exit(1); - } + return NULL; } } diff --git a/src/passphrase.h b/src/passphrase.h index 8dbc39d..9a1baa5 100644 --- a/src/passphrase.h +++ b/src/passphrase.h @@ -23,19 +23,19 @@ /** * Reads the passphrase from stdin * - * @return The passphrase, should be `free`:ed + * @return The passphrase, should be wiped `free`:ed, `NULL` on error */ -char* get_passphrase(void); +extern char* get_passphrase(void); /** * Disable echoing and do anything else to the terminal settnings `get_passphrase` requires */ -void disable_echo(void); +extern void disable_echo(void); /** * Undo the actions of `disable_echo` */ -void reenable_echo(void); +extern void reenable_echo(void); #endif |