diff options
Diffstat (limited to 'src')
| -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 | 
