Antonio Larrosa
33d804a345
- To fix a copy&paste oversight in an ifdef : * 0001-fix-utmpx-ifdef.patch - To fix a regression introduced when the "Match" criteria tokenizer was modified since it stopped supporting the "Match criteria=argument" format: * 0002-upstream-fix-regression-introduced-when-I-switched-the-Match.patch - To fix the previous patch which broke on negated Matches: * 0003-upstream-fix-previous-change-to-ssh_config-Match_-which-broken-on.patch - To fix the ML-KEM768x25519 kex algorithm on big-endian systems: * 0004-upstream-fix-ML-KEM768x25519-KEX-on-big-endian-systems-spotted-by.patch OBS-URL: https://build.opensuse.org/package/show/network/openssh?expand=0&rev=279
66 lines
2.3 KiB
Diff
66 lines
2.3 KiB
Diff
From 19bcb2d90c6caf14abf386b644fb24eb7afab889 Mon Sep 17 00:00:00 2001
|
|
From: "djm@openbsd.org" <djm@openbsd.org>
|
|
Date: Thu, 26 Sep 2024 23:55:08 +0000
|
|
Subject: upstream: fix previous change to ssh_config Match, which broken on
|
|
|
|
negated Matches; spotted by phessler@ ok deraadt@
|
|
|
|
OpenBSD-Commit-ID: b1c6acec66cd5bd1252feff1d02ad7129ced37c7
|
|
---
|
|
readconf.c | 14 +++++++-------
|
|
1 file changed, 7 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/readconf.c b/readconf.c
|
|
index de42fb6f..9f559269 100644
|
|
--- a/readconf.c
|
|
+++ b/readconf.c
|
|
@@ -1,4 +1,4 @@
|
|
-/* $OpenBSD: readconf.c,v 1.391 2024/09/25 01:24:04 djm Exp $ */
|
|
+/* $OpenBSD: readconf.c,v 1.392 2024/09/26 23:55:08 djm Exp $ */
|
|
/*
|
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
|
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
|
@@ -710,7 +710,7 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp,
|
|
struct passwd *pw, const char *host_arg, const char *original_host,
|
|
int final_pass, int *want_final_pass, const char *filename, int linenum)
|
|
{
|
|
- char *arg, *oattrib, *attrib = NULL, *cmd, *host, *criteria;
|
|
+ char *arg, *oattrib = NULL, *attrib = NULL, *cmd, *host, *criteria;
|
|
const char *ruser;
|
|
int r, this_result, result = 1, attributes = 0, negate;
|
|
|
|
@@ -731,8 +731,8 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp,
|
|
|
|
debug2("checking match for '%s' host %s originally %s",
|
|
full_line, host, original_host);
|
|
- while ((oattrib = argv_next(acp, avp)) != NULL) {
|
|
- attrib = xstrdup(oattrib);
|
|
+ while ((attrib = argv_next(acp, avp)) != NULL) {
|
|
+ attrib = oattrib = xstrdup(attrib);
|
|
/* Terminate on comment */
|
|
if (*attrib == '#') {
|
|
argv_consume(acp);
|
|
@@ -871,8 +871,8 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp,
|
|
criteria == NULL ? "" : criteria,
|
|
criteria == NULL ? "" : "\"");
|
|
free(criteria);
|
|
- free(attrib);
|
|
- attrib = NULL;
|
|
+ free(oattrib);
|
|
+ oattrib = attrib = NULL;
|
|
}
|
|
if (attributes == 0) {
|
|
error("One or more attributes required for Match");
|
|
@@ -882,7 +882,7 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp,
|
|
out:
|
|
if (result != -1)
|
|
debug2("match %sfound", result ? "" : "not ");
|
|
- free(attrib);
|
|
+ free(oattrib);
|
|
free(host);
|
|
return result;
|
|
}
|
|
--
|
|
cgit v1.2.3
|
|
|