diff options
| author | Mattias Andrée <maandree@operamail.com> | 2013-11-22 10:03:07 +0100 | 
|---|---|---|
| committer | Mattias Andrée <maandree@operamail.com> | 2013-11-22 10:03:07 +0100 | 
| commit | 38bf64b415376f1419cd798fd753736960355bf5 (patch) | |
| tree | c9b725f2bf140641fc9faf7bbe7d5786183158e1 /src | |
| parent | update copying notice (diff) | |
| download | libpassphrase-38bf64b415376f1419cd798fd753736960355bf5.tar.gz libpassphrase-38bf64b415376f1419cd798fd753736960355bf5.tar.bz2 libpassphrase-38bf64b415376f1419cd798fd753736960355bf5.tar.xz | |
first version
Signed-off-by: Mattias Andrée <maandree@operamail.com>
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 | 
