summaryrefslogtreecommitdiff
path: root/security/gnome-ssh-askpass/files/patch-contrib_gnome-ssh-askpass2.c
diff options
context:
space:
mode:
authorMuhammad Moinur Rahman <bofh@FreeBSD.org>2024-04-05 21:15:40 +0200
committerMuhammad Moinur Rahman <bofh@FreeBSD.org>2024-04-05 21:48:23 +0200
commit7b9266ba2dea2b1f9b1f6655a0097051daf1b0bc (patch)
treea6adbfd81c77c10995271bf4bccf93ff28817010 /security/gnome-ssh-askpass/files/patch-contrib_gnome-ssh-askpass2.c
parentdevel/py-pipdeptree: Update version 2.16.2=>2.17.0 (diff)
security/gnome-ssh-askpass: Update version 7.3p1=>7.4p1
Diffstat (limited to 'security/gnome-ssh-askpass/files/patch-contrib_gnome-ssh-askpass2.c')
-rw-r--r--security/gnome-ssh-askpass/files/patch-contrib_gnome-ssh-askpass2.c77
1 files changed, 52 insertions, 25 deletions
diff --git a/security/gnome-ssh-askpass/files/patch-contrib_gnome-ssh-askpass2.c b/security/gnome-ssh-askpass/files/patch-contrib_gnome-ssh-askpass2.c
index 281d2981379d..5dc0d45704db 100644
--- a/security/gnome-ssh-askpass/files/patch-contrib_gnome-ssh-askpass2.c
+++ b/security/gnome-ssh-askpass/files/patch-contrib_gnome-ssh-askpass2.c
@@ -1,53 +1,55 @@
---- contrib/gnome-ssh-askpass2.c.orig 2009-11-18 06:51:59 UTC
+--- contrib/gnome-ssh-askpass2.c.orig 2016-12-19 04:59:41 UTC
+++ contrib/gnome-ssh-askpass2.c
-@@ -88,12 +88,13 @@ passphrase_dialog(char *message)
+@@ -86,12 +86,13 @@ passphrase_dialog(char *message)
{
const char *failed;
char *passphrase, *local;
- int result, grab_tries, grab_server, grab_pointer;
+ int result, grab_tries, grab_server, grab_pointer, grab_keyboard;
- GtkWidget *dialog, *entry;
+ GtkWidget *parent_window, *dialog, *entry;
GdkGrabStatus status;
grab_server = (getenv("GNOME_SSH_ASKPASS_GRAB_SERVER") != NULL);
grab_pointer = (getenv("GNOME_SSH_ASKPASS_GRAB_POINTER") != NULL);
-+ grab_keyboard = (getenv("GNOME_SSH_ASKPASS_GRAB_KEYBOARD") != NULL);
++ grab_keyboard = (getenv("GNOME_SSH_ASKPASS_GRAB_KEYBOARD") != NULL);
grab_tries = 0;
- dialog = gtk_message_dialog_new(NULL, 0,
-@@ -138,17 +139,21 @@ passphrase_dialog(char *message)
+ /* Create an invisible parent window so that GtkDialog doesn't
+@@ -139,18 +140,20 @@ passphrase_dialog(char *message)
}
}
}
- for(;;) {
-- status = gdk_keyboard_grab((GTK_WIDGET(dialog))->window,
-- FALSE, GDK_CURRENT_TIME);
+- status = gdk_keyboard_grab(
+- gtk_widget_get_window(GTK_WIDGET(dialog)), FALSE,
+- GDK_CURRENT_TIME);
- if (status == GDK_GRAB_SUCCESS)
- break;
- usleep(GRAB_WAIT * 1000);
- if (++grab_tries > GRAB_TRIES) {
- failed = "keyboard";
- goto nograbkb;
-+
-+ if (grab_keyboard) {
-+ for(;;) {
-+ status = gdk_keyboard_grab((GTK_WIDGET(dialog))->window,
-+ FALSE, GDK_CURRENT_TIME);
-+ if (status == GDK_GRAB_SUCCESS)
-+ break;
-+ usleep(GRAB_WAIT * 1000);
-+ if (++grab_tries > GRAB_TRIES) {
-+ failed = "keyboard";
-+ goto nograbkb;
-+ }
- }
- }
-+
+- }
+- }
++ if (grab_keyboard) {
++ for(;;) {
++ status = gdk_keyboard_grab(
++ gtk_widget_get_window(GTK_WIDGET(dialog)), FALSE,
++ GDK_CURRENT_TIME);
++ if (status == GDK_GRAB_SUCCESS)
++ break;
++ usleep(GRAB_WAIT * 1000);
++ if (++grab_tries > GRAB_TRIES) {
++ failed = "keyboard";
++ goto nograbkb;
++ }
++ }
++ }
if (grab_server) {
gdk_x11_grab_server();
}
-@@ -160,7 +165,8 @@ passphrase_dialog(char *message)
- XUngrabServer(GDK_DISPLAY());
+@@ -162,7 +165,8 @@ passphrase_dialog(char *message)
+ XUngrabServer(gdk_x11_get_default_xdisplay());
if (grab_pointer)
gdk_pointer_ungrab(GDK_CURRENT_TIME);
- gdk_keyboard_ungrab(GDK_CURRENT_TIME);
@@ -56,3 +58,28 @@
gdk_flush();
/* Report passphrase if user selected OK */
+@@ -178,13 +182,13 @@ passphrase_dialog(char *message)
+ puts(passphrase);
+ }
+ }
+-
++
+ /* Zero passphrase in memory */
+ memset(passphrase, '\b', strlen(passphrase));
+ gtk_entry_set_text(GTK_ENTRY(entry), passphrase);
+ memset(passphrase, '\0', strlen(passphrase));
+ g_free(passphrase);
+-
++
+ gtk_widget_destroy(dialog);
+ return (result == GTK_RESPONSE_OK ? 0 : -1);
+
+@@ -197,7 +201,7 @@ passphrase_dialog(char *message)
+ if (grab_server)
+ XUngrabServer(gdk_x11_get_default_xdisplay());
+ gtk_widget_destroy(dialog);
+-
++
+ report_failed_grab(parent_window, failed);
+
+ return (-1);