diff options
Diffstat (limited to 'libsylph/masterpassword.c')
| -rw-r--r-- | libsylph/masterpassword.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/libsylph/masterpassword.c b/libsylph/masterpassword.c index b86f06b..2da6969 100644 --- a/libsylph/masterpassword.c +++ b/libsylph/masterpassword.c | |||
| @@ -38,11 +38,17 @@ gchar *get_master_password(void) { | |||
| 38 | return master_password; | 38 | return master_password; |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | void unload_master_password(void) { | 41 | void cleanse_buffer(void *buf, size_t len) { |
| 42 | |||
| 43 | #if USE_SSL | 42 | #if USE_SSL |
| 44 | OPENSSL_cleanse(master_password, strlen(master_password)); | 43 | OPENSSL_cleanse(buf, len); |
| 44 | #else | ||
| 45 | memset(buf, 0, len); /* better than nothing */ | ||
| 45 | #endif | 46 | #endif |
| 47 | } | ||
| 48 | |||
| 49 | void unload_master_password(void) { | ||
| 50 | |||
| 51 | cleanse_buffer(master_password, strlen(master_password)); | ||
| 46 | g_free(master_password); | 52 | g_free(master_password); |
| 47 | master_password = NULL; | 53 | master_password = NULL; |
| 48 | 54 | ||
