diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 3 | ||||
-rw-r--r-- | src/passphrase.c | 8 |
2 files changed, 9 insertions, 2 deletions
@@ -626,7 +626,8 @@ static void idle_function_for_gpgme(void) static void check_gpg(void) { #if USE_GPGME - if (gpgme_check_version("0.4.5")) { + if (gpgme_check_version("0.4.5") && + !gpgme_engine_check_version(GPGME_PROTOCOL_OpenPGP)) { /* Also does some gpgme init */ gpgme_engine_info_t engineInfo; diff --git a/src/passphrase.c b/src/passphrase.c index d4f50489..84c1c5b2 100644 --- a/src/passphrase.c +++ b/src/passphrase.c @@ -44,7 +44,9 @@ #include <gtk/gtkstock.h> #include <string.h> #include <sys/types.h> -#include <sys/mman.h> +#if HAVE_SYS_MMAN_H +# include <sys/mman.h> +#endif #include "passphrase.h" #include "prefs_common.h" @@ -263,7 +265,9 @@ create_description(const gchar *uid_hint, const gchar *pass_hint, gint prev_bad) static int free_passphrase(gpointer _unused) { if (last_pass != NULL) { +#if HAVE_MLOCK munlock(last_pass, strlen(last_pass)); +#endif g_free(last_pass); last_pass = NULL; debug_print("%% passphrase removed"); @@ -295,8 +299,10 @@ gpgmegtk_passphrase_cb(void *opaque, const char *uid_hint, else { if (prefs_common.store_passphrase) { last_pass = g_strdup(pass); +#if HAVE_MLOCK if (mlock(last_pass, strlen(last_pass)) == -1) debug_print("%% locking passphrase failed"); +#endif if (prefs_common.store_passphrase_timeout > 0) { gtk_timeout_add(prefs_common.store_passphrase_timeout*60*1000, |