From a60acabf1c57cb63b9addc285bed7f4ff0b12abc Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Tue, 30 Jul 2013 16:32:02 +0200 Subject: [PATCH] Fix crashes inside libgnome-keyring. They happen because we are passing literal 0 (which is interpreted as int) to varargs function, which expects it to be a pointer. The result may be a garbage within libgnome-keyring, because int may be 32 bits and pointers 64 bits wide. --- keychain_dbus.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keychain_dbus.cpp b/keychain_dbus.cpp index 286be37..4b39348 100644 --- a/keychain_dbus.cpp +++ b/keychain_dbus.cpp @@ -77,7 +77,7 @@ public: return 0; return instance().store_password( instance().NETWORK_PASSWORD, keyring, display_name, password, callback, data, destroy_data, - "user", user, "server", server, 0 ); + "user", user, "server", server, static_cast(0) ); } static gpointer find_network_password( const gchar* user, const gchar* server, @@ -87,7 +87,7 @@ public: return 0; return instance().find_password( instance().NETWORK_PASSWORD, callback, data, destroy_data, - "user", user, "server", server, 0 ); + "user", user, "server", server, static_cast(0) ); } static gpointer delete_network_password( const gchar* user, const gchar* server, @@ -97,7 +97,7 @@ public: return 0; return instance().delete_password( instance().NETWORK_PASSWORD, callback, data, destroy_data, - "user", user, "server", server, 0 ); + "user", user, "server", server, static_cast(0) ); } private: