]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: allow WAYLAND_DISPLAY to enable SSH_ASKPASS
authordjm@openbsd.org <djm@openbsd.org>
Sat, 30 Mar 2024 04:27:44 +0000 (04:27 +0000)
committerDamien Miller <djm@mindrot.org>
Sat, 30 Mar 2024 04:35:03 +0000 (15:35 +1100)
From dkg via GHPR479; ok dtucker@

OpenBSD-Commit-ID: 1ac1f9c45da44eabbae89375393c662349239257

readpass.c

index b52f3d6b1e1a8c21d33a03932566121dd5278962..d42b1185d017d55096849455267792b3eb6c5761 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: readpass.c,v 1.70 2022/05/27 04:27:49 dtucker Exp $ */
+/* $OpenBSD: readpass.c,v 1.71 2024/03/30 04:27:44 djm Exp $ */
 /*
  * Copyright (c) 2001 Markus Friedl.  All rights reserved.
  *
@@ -127,8 +127,9 @@ read_passphrase(const char *prompt, int flags)
        const char *askpass_hint = NULL;
        const char *s;
 
-       if ((s = getenv("DISPLAY")) != NULL)
-               allow_askpass = *s != '\0';
+       if (((s = getenv("DISPLAY")) != NULL && *s != '\0') ||
+           ((s = getenv("WAYLAND_DISPLAY")) != NULL && *s != '\0'))
+               allow_askpass = 1;
        if ((s = getenv(SSH_ASKPASS_REQUIRE_ENV)) != NULL) {
                if (strcasecmp(s, "force") == 0) {
                        use_askpass = 1;
@@ -261,7 +262,7 @@ notify_start(int force_askpass, const char *fmt, ...)
                debug3_f("cannot notify: no askpass");
                goto out;
        }
-       if (getenv("DISPLAY") == NULL &&
+       if (getenv("DISPLAY") == NULL && getenv("WAYLAND_DISPLAY") == NULL &&
            ((s = getenv(SSH_ASKPASS_REQUIRE_ENV)) == NULL ||
            strcmp(s, "force") != 0)) {
                debug3_f("cannot notify: no display");