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.
This commit is contained in:
parent
a23bbdc954
commit
a60acabf1c
|
@ -77,7 +77,7 @@ public:
|
||||||
return 0;
|
return 0;
|
||||||
return instance().store_password( instance().NETWORK_PASSWORD,
|
return instance().store_password( instance().NETWORK_PASSWORD,
|
||||||
keyring, display_name, password, callback, data, destroy_data,
|
keyring, display_name, password, callback, data, destroy_data,
|
||||||
"user", user, "server", server, 0 );
|
"user", user, "server", server, static_cast<char*>(0) );
|
||||||
}
|
}
|
||||||
|
|
||||||
static gpointer find_network_password( const gchar* user, const gchar* server,
|
static gpointer find_network_password( const gchar* user, const gchar* server,
|
||||||
|
@ -87,7 +87,7 @@ public:
|
||||||
return 0;
|
return 0;
|
||||||
return instance().find_password( instance().NETWORK_PASSWORD,
|
return instance().find_password( instance().NETWORK_PASSWORD,
|
||||||
callback, data, destroy_data,
|
callback, data, destroy_data,
|
||||||
"user", user, "server", server, 0 );
|
"user", user, "server", server, static_cast<char*>(0) );
|
||||||
}
|
}
|
||||||
|
|
||||||
static gpointer delete_network_password( const gchar* user, const gchar* server,
|
static gpointer delete_network_password( const gchar* user, const gchar* server,
|
||||||
|
@ -97,7 +97,7 @@ public:
|
||||||
return 0;
|
return 0;
|
||||||
return instance().delete_password( instance().NETWORK_PASSWORD,
|
return instance().delete_password( instance().NETWORK_PASSWORD,
|
||||||
callback, data, destroy_data,
|
callback, data, destroy_data,
|
||||||
"user", user, "server", server, 0 );
|
"user", user, "server", server, static_cast<char*>(0) );
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in New Issue