]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: make parsing user@host consistently look for the last '@' in
authordjm@openbsd.org <djm@openbsd.org>
Fri, 6 Sep 2024 02:30:44 +0000 (02:30 +0000)
committerDamien Miller <djm@mindrot.org>
Fri, 6 Sep 2024 02:31:19 +0000 (12:31 +1000)
the string rather than the first. This makes it possible to use usernames
that contain '@' characters.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Prompted by Max Zettlmeißl; feedback/ok millert@

OpenBSD-Commit-ID: 0b16eec246cda15469ebdcf3b1e2479810e394c5

match.c
ssh-add.c

diff --git a/match.c b/match.c
index d6af2561ffd3ac417beb2211bc5983db2c0b8a1a..3ef5369310c664f601fce0e1355555a1b4166b36 100644 (file)
--- a/match.c
+++ b/match.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: match.c,v 1.44 2023/04/06 03:19:32 djm Exp $ */
+/* $OpenBSD: match.c,v 1.45 2024/09/06 02:30:44 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -241,7 +241,7 @@ match_user(const char *user, const char *host, const char *ipaddr,
 
        /* test mode */
        if (user == NULL && host == NULL && ipaddr == NULL) {
-               if ((p = strchr(pattern, '@')) != NULL &&
+               if ((p = strrchr(pattern, '@')) != NULL &&
                    match_host_and_ip(NULL, NULL, p + 1) < 0)
                        return -1;
                return 0;
@@ -250,11 +250,11 @@ match_user(const char *user, const char *host, const char *ipaddr,
        if (user == NULL)
                return 0; /* shouldn't happen */
 
-       if ((p = strchr(pattern, '@')) == NULL)
+       if (strrchr(pattern, '@') == NULL)
                return match_pattern(user, pattern);
 
        pat = xstrdup(pattern);
-       p = strchr(pat, '@');
+       p = strrchr(pat, '@');
        *p++ = '\0';
 
        if ((ret = match_pattern(user, pat)) == 1)
index e532d5ce1f64b4f4de36c7d5768ae5e9816a1896..0035cb84a0c1101400008d0b7b91c283cda306af 100644 (file)
--- a/ssh-add.c
+++ b/ssh-add.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-add.c,v 1.172 2024/01/11 01:45:36 djm Exp $ */
+/* $OpenBSD: ssh-add.c,v 1.173 2024/09/06 02:30:44 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -698,7 +698,7 @@ parse_dest_constraint_hop(const char *s, struct dest_constraint_hop *dch,
 
        memset(dch, '\0', sizeof(*dch));
        os = xstrdup(s);
-       if ((host = strchr(os, '@')) == NULL)
+       if ((host = strrchr(os, '@')) == NULL)
                host = os;
        else {
                *host++ = '\0';