Compare commits
2 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f17ff3f549 | ||
|
|
520e55a6fe |
6 changed files with 935 additions and 145 deletions
|
|
@ -24,7 +24,7 @@
|
|||
%global libedit 1
|
||||
|
||||
%global openssh_ver 9.9p1
|
||||
%global openssh_rel 1
|
||||
%global openssh_rel 3
|
||||
|
||||
Summary: An implementation of the SSH protocol with GSI authentication
|
||||
Name: gsi-openssh
|
||||
|
|
@ -174,9 +174,17 @@ Patch1014: openssh-8.7p1-nohostsha1proof.patch
|
|||
|
||||
Patch1015: openssh-9.6p1-pam-rhost.patch
|
||||
Patch1016: openssh-9.9p1-separate-keysign.patch
|
||||
Patch1017: openssh-8.7p1-redhat-help.patch
|
||||
Patch1018: openssh-8.7p1-openssl-log.patch
|
||||
# upstream cf3e48ee8ba1beeccddd2f203b558fa102be67a2
|
||||
# upstream 0c3927c45f8a57b511c874c4d51a8c89414f74ef
|
||||
Patch1017: openssh-9.9p1-mlkembe.patch
|
||||
Patch1019: openssh-9.9p1-mlkembe.patch
|
||||
# upstream 3f02368e8e9121847727c46b280efc280e5eb615
|
||||
# upstream 67a115e7a56dbdc3f5a58c64b29231151f3670f5
|
||||
Patch1020: openssh-9.9p1-match-regression.patch
|
||||
# upstream 6ce00f0c2ecbb9f75023dbe627ee6460bcec78c2
|
||||
# upstream 0832aac79517611dd4de93ad0a83577994d9c907
|
||||
Patch1021: openssh-9.9p2-error_processing.patch
|
||||
|
||||
# This is the patch that adds GSI support
|
||||
# Based on hpn_isshd-gsi.7.5p1b.patch from Globus upstream
|
||||
|
|
@ -345,7 +353,11 @@ gpgv2 --quiet --keyring %{SOURCE3} %{SOURCE1} %{SOURCE0}
|
|||
%patch -P 1014 -p1 -b .nosha1hostproof
|
||||
%patch -P 1015 -p1 -b .pam-rhost
|
||||
%patch -P 1016 -p1 -b .sep-keysign
|
||||
%patch -P 1017 -p1 -b .mlkembe
|
||||
%patch -P 1017 -p1 -b .help
|
||||
%patch -P 1018 -p1 -b .openssl-log
|
||||
%patch -P 1019 -p1 -b .mlkembe
|
||||
%patch -P 1020 -p1 -b .match
|
||||
%patch -P 1021 -p1 -b .errcode_set
|
||||
|
||||
%patch -P 100 -p1 -b .coverity
|
||||
%patch -P 98 -p1 -b .gsi
|
||||
|
|
@ -361,7 +373,6 @@ autoreconf
|
|||
|
||||
%build
|
||||
%set_build_flags
|
||||
CFLAGS="$CFLAGS"; export CFLAGS
|
||||
%if %{pie}
|
||||
%ifarch s390 s390x sparc sparcv9 sparc64
|
||||
CFLAGS="$CFLAGS -fPIC"
|
||||
|
|
@ -571,6 +582,12 @@ fi
|
|||
%ghost %attr(0644,root,root) %{_localstatedir}/lib/.gsissh-host-keys-migration
|
||||
|
||||
%changelog
|
||||
* Sun Apr 20 2025 Mattias Ellert <mattias.ellert@physics.uu.se> - 9.9p1-
|
||||
- Based on openssh-9.9p1-7.el10
|
||||
|
||||
* Wed Mar 05 2025 Mattias Ellert <mattias.ellert@physics.uu.se> - 9.9p1-2
|
||||
- Based on openssh-9.9p1-5.el10.1
|
||||
|
||||
* Mon Jan 20 2025 Mattias Ellert <mattias.ellert@physics.uu.se> - 9.9p1-1
|
||||
- Based on openssh-9.9p1-5.fc42 / openssh-9.9p1-1.fc41
|
||||
|
||||
|
|
|
|||
112
openssh-8.7p1-openssl-log.patch
Normal file
112
openssh-8.7p1-openssl-log.patch
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
diff -up openssh-9.9p1/log.c.xxx openssh-9.9p1/log.c
|
||||
--- openssh-9.9p1/log.c.xxx 2024-10-22 11:55:44.281939275 +0200
|
||||
+++ openssh-9.9p1/log.c 2024-10-22 11:56:16.709676267 +0200
|
||||
@@ -52,6 +52,9 @@
|
||||
|
||||
#include "log.h"
|
||||
#include "match.h"
|
||||
+#ifdef WITH_OPENSSL
|
||||
+#include <openssl/err.h>
|
||||
+#endif
|
||||
|
||||
static LogLevel log_level = SYSLOG_LEVEL_INFO;
|
||||
static int log_on_stderr = 1;
|
||||
@@ -438,6 +438,26 @@ sshlog(const char *file, const char *fun
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
+#ifdef WITH_OPENSSL
|
||||
+static int
|
||||
+openssl_error_print_cb(const char *str, size_t len, void *u)
|
||||
+{
|
||||
+ sshlogdirect(SYSLOG_LEVEL_DEBUG1, 0, "openssl error %s", str);
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+void
|
||||
+sshlog_openssl(int r)
|
||||
+{
|
||||
+#ifdef WITH_OPENSSL
|
||||
+ if (r != SSH_ERR_LIBCRYPTO_ERROR) return;
|
||||
+
|
||||
+ ERR_print_errors_cb(openssl_error_print_cb, NULL);
|
||||
+#endif
|
||||
+ return;
|
||||
+}
|
||||
+
|
||||
void
|
||||
sshlogdie(const char *file, const char *func, int line, int showfunc,
|
||||
LogLevel level, const char *suffix, const char *fmt, ...)
|
||||
diff -up openssh-8.7p1/log.h.xxx openssh-8.7p1/log.h
|
||||
--- openssh-8.7p1/log.h.xxx 2024-10-18 12:56:18.944971946 +0200
|
||||
+++ openssh-8.7p1/log.h 2024-10-18 13:03:38.324351416 +0200
|
||||
@@ -71,6 +71,7 @@ void cleanup_exit(int) __attribute__((n
|
||||
void sshlog(const char *, const char *, int, int,
|
||||
LogLevel, const char *, const char *, ...)
|
||||
__attribute__((format(printf, 7, 8)));
|
||||
+void sshlog_openssl(int);
|
||||
void sshlogv(const char *, const char *, int, int,
|
||||
LogLevel, const char *, const char *, va_list);
|
||||
void sshlogdie(const char *, const char *, int, int,
|
||||
diff -up openssh-8.7p1/auth2-pubkey.c.yyy openssh-8.7p1/auth2-pubkey.c
|
||||
--- openssh-8.7p1/auth2-pubkey.c.yyy 2024-10-18 13:27:00.709055845 +0200
|
||||
+++ openssh-8.7p1/auth2-pubkey.c 2024-10-18 13:27:31.638784460 +0200
|
||||
@@ -131,6 +131,7 @@ userauth_pubkey(struct ssh *ssh)
|
||||
goto done;
|
||||
}
|
||||
if ((r = sshkey_from_blob(pkblob, blen, &key)) != 0) {
|
||||
+ sshlog_openssl(r);
|
||||
error_fr(r, "parse key");
|
||||
goto done;
|
||||
}
|
||||
diff -up openssh-8.7p1/dispatch.c.yyy openssh-8.7p1/dispatch.c
|
||||
--- openssh-8.7p1/dispatch.c.yyy 2024-10-18 13:27:56.349366570 +0200
|
||||
+++ openssh-8.7p1/dispatch.c 2024-10-18 13:28:17.921874757 +0200
|
||||
@@ -130,6 +130,8 @@ ssh_dispatch_run_fatal(struct ssh *ssh,
|
||||
{
|
||||
int r;
|
||||
|
||||
- if ((r = ssh_dispatch_run(ssh, mode, done)) != 0)
|
||||
+ if ((r = ssh_dispatch_run(ssh, mode, done)) != 0) {
|
||||
+ sshlog_openssl(r);
|
||||
sshpkt_fatal(ssh, r, "%s", __func__);
|
||||
+ }
|
||||
}
|
||||
diff -up openssh-9.9p1/Makefile.in.xxx openssh-9.9p1/Makefile.in
|
||||
--- openssh-9.9p1/Makefile.in.xxx 2025-01-27 12:56:58.533623367 +0100
|
||||
+++ openssh-9.9p1/Makefile.in 2025-01-27 12:57:41.635638843 +0100
|
||||
@@ -224,7 +224,7 @@ sshd-session$(EXEEXT): libssh.a $(LIBCOM
|
||||
$(LD) -o $@ $(SSHD_SESSION_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHDLIBS) $(LIBS) $(GSSLIBS) $(K5LIBS) $(CHANNELLIBS)
|
||||
|
||||
scp$(EXEEXT): $(LIBCOMPAT) libssh.a $(SCP_OBJS)
|
||||
- $(LD) -o $@ $(SCP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
|
||||
+ $(LD) -o $@ $(SCP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lcrypto $(LIBS)
|
||||
|
||||
ssh-add$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHADD_OBJS)
|
||||
$(LD) -o $@ $(SSHADD_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(CHANNELLIBS)
|
||||
@@ -245,20 +245,20 @@ ssh-sk-helper$(EXEEXT): $(LIBCOMPAT) lib
|
||||
$(LD) -o $@ $(SKHELPER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) $(LIBFIDO2) $(CHANNELLIBS)
|
||||
|
||||
ssh-keycat$(EXEEXT): $(LIBCOMPAT) $(SSHDOBJS) libssh.a ssh-keycat.o uidswap.o
|
||||
- $(LD) -o $@ ssh-keycat.o uidswap.o $(LDFLAGS) -lssh -lopenbsd-compat $(KEYCATLIBS) $(LIBS)
|
||||
+ $(LD) -o $@ ssh-keycat.o uidswap.o $(LDFLAGS) -lssh -lopenbsd-compat -lcrypto $(KEYCATLIBS) $(LIBS)
|
||||
|
||||
ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHKEYSCAN_OBJS)
|
||||
$(LD) -o $@ $(SSHKEYSCAN_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) $(CHANNELLIBS)
|
||||
|
||||
sftp-server$(EXEEXT): $(LIBCOMPAT) libssh.a $(SFTPSERVER_OBJS)
|
||||
- $(LD) -o $@ $(SFTPSERVER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS)
|
||||
+ $(LD) -o $@ $(SFTPSERVER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lcrypto $(LIBS)
|
||||
|
||||
sftp$(EXEEXT): $(LIBCOMPAT) libssh.a $(SFTP_OBJS)
|
||||
- $(LD) -o $@ $(SFTP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(LIBEDIT)
|
||||
+ $(LD) -o $@ $(SFTP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lcrypto $(LIBS) $(LIBEDIT)
|
||||
|
||||
# test driver for the loginrec code - not built by default
|
||||
logintest: logintest.o $(LIBCOMPAT) libssh.a loginrec.o
|
||||
- $(LD) -o $@ logintest.o $(LDFLAGS) loginrec.o -lopenbsd-compat -lssh $(LIBS)
|
||||
+ $(LD) -o $@ logintest.o $(LDFLAGS) loginrec.o -lopenbsd-compat -lssh -lcrypto $(LIBS)
|
||||
|
||||
$(MANPAGES): $(MANPAGES_IN)
|
||||
if test "$(MANTYPE)" = "cat"; then \
|
||||
40
openssh-8.7p1-redhat-help.patch
Normal file
40
openssh-8.7p1-redhat-help.patch
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
diff -up openssh-8.7p1/ssh.c.xxx openssh-8.7p1/ssh.c
|
||||
--- openssh-8.7p1/ssh.c.xxx 2024-09-11 14:24:06.711088878 +0200
|
||||
+++ openssh-8.7p1/ssh.c 2024-09-11 14:35:12.883765718 +0200
|
||||
@@ -175,6 +175,16 @@ extern int muxserver_sock;
|
||||
extern u_int muxclient_command;
|
||||
|
||||
/* Prints a help message to the user. This function never returns. */
|
||||
+static void
|
||||
+redhat_usage(void)
|
||||
+{
|
||||
+ if(isatty(fileno(stderr))) {
|
||||
+ fprintf(stderr,
|
||||
+"\nYou can find some explanations for typical errors at this link:\n"
|
||||
+" https://red.ht/support_rhel_ssh\n"
|
||||
+ );
|
||||
+ }
|
||||
+}
|
||||
|
||||
static void
|
||||
usage(void)
|
||||
@@ -188,6 +196,7 @@ usage(void)
|
||||
" destination [command [argument ...]]\n"
|
||||
" ssh [-Q query_option]\n"
|
||||
);
|
||||
+ redhat_usage();
|
||||
exit(255);
|
||||
}
|
||||
|
||||
@@ -1609,8 +1618,10 @@ main(int ac, char **av)
|
||||
/* Open a connection to the remote host. */
|
||||
if (ssh_connect(ssh, host, options.host_arg, addrs, &hostaddr,
|
||||
options.port, options.connection_attempts,
|
||||
- &timeout_ms, options.tcp_keep_alive) != 0)
|
||||
+ &timeout_ms, options.tcp_keep_alive) != 0) {
|
||||
+ redhat_usage();
|
||||
exit(255);
|
||||
+ }
|
||||
|
||||
if (addrs != NULL)
|
||||
freeaddrinfo(addrs);
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
diff -Nur openssh-9.9p1.orig/auth2.c openssh-9.9p1/auth2.c
|
||||
--- openssh-9.9p1.orig/auth2.c 2025-01-20 20:48:33.444582227 +0100
|
||||
+++ openssh-9.9p1/auth2.c 2025-01-20 21:54:08.570687857 +0100
|
||||
--- openssh-9.9p1.orig/auth2.c 2025-03-06 00:02:47.558862414 +0100
|
||||
+++ openssh-9.9p1/auth2.c 2025-03-06 00:03:46.244472587 +0100
|
||||
@@ -52,6 +52,8 @@
|
||||
#include "dispatch.h"
|
||||
#include "pathnames.h"
|
||||
|
|
@ -43,7 +43,7 @@ diff -Nur openssh-9.9p1.orig/auth2.c openssh-9.9p1/auth2.c
|
|||
#ifdef WITH_SELINUX
|
||||
diff -Nur openssh-9.9p1.orig/binn.c openssh-9.9p1/binn.c
|
||||
--- openssh-9.9p1.orig/binn.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/binn.c 2025-01-20 20:50:04.564813761 +0100
|
||||
+++ openssh-9.9p1/binn.c 2025-03-06 00:03:46.255472595 +0100
|
||||
@@ -0,0 +1,3541 @@
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
|
|
@ -3588,7 +3588,7 @@ diff -Nur openssh-9.9p1.orig/binn.c openssh-9.9p1/binn.c
|
|||
+/*************************************************************************************/
|
||||
diff -Nur openssh-9.9p1.orig/binn.h openssh-9.9p1/binn.h
|
||||
--- openssh-9.9p1.orig/binn.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/binn.h 2025-01-20 20:50:04.565813763 +0100
|
||||
+++ openssh-9.9p1/binn.h 2025-03-06 00:03:46.257472597 +0100
|
||||
@@ -0,0 +1,945 @@
|
||||
+
|
||||
+// TO ENABLE INLINE FUNCTIONS:
|
||||
|
|
@ -4536,8 +4536,8 @@ diff -Nur openssh-9.9p1.orig/binn.h openssh-9.9p1/binn.h
|
|||
+
|
||||
+#endif //BINN_H
|
||||
diff -Nur openssh-9.9p1.orig/channels.c openssh-9.9p1/channels.c
|
||||
--- openssh-9.9p1.orig/channels.c 2025-01-20 20:48:33.373582047 +0100
|
||||
+++ openssh-9.9p1/channels.c 2025-01-20 21:55:22.938880541 +0100
|
||||
--- openssh-9.9p1.orig/channels.c 2025-03-06 00:02:47.438427815 +0100
|
||||
+++ openssh-9.9p1/channels.c 2025-03-06 00:03:46.261472600 +0100
|
||||
@@ -97,6 +97,11 @@
|
||||
/* Minimum port number for X11 forwarding */
|
||||
#define X11_PORT_MIN 6000
|
||||
|
|
@ -4687,8 +4687,8 @@ diff -Nur openssh-9.9p1.orig/channels.c openssh-9.9p1/channels.c
|
|||
channel_setup_fwd_listener_tcpip(struct ssh *ssh, int type,
|
||||
struct Forward *fwd, int *allocated_listen_port,
|
||||
diff -Nur openssh-9.9p1.orig/channels.h openssh-9.9p1/channels.h
|
||||
--- openssh-9.9p1.orig/channels.h 2025-01-20 20:48:33.343581971 +0100
|
||||
+++ openssh-9.9p1/channels.h 2025-01-20 20:50:04.567813768 +0100
|
||||
--- openssh-9.9p1.orig/channels.h 2025-03-06 00:02:47.392951541 +0100
|
||||
+++ openssh-9.9p1/channels.h 2025-03-06 00:03:46.264019621 +0100
|
||||
@@ -175,6 +175,7 @@
|
||||
u_int local_window_max;
|
||||
u_int local_consumed;
|
||||
|
|
@ -4714,8 +4714,8 @@ diff -Nur openssh-9.9p1.orig/channels.h openssh-9.9p1/channels.h
|
|||
+void channel_set_hpn_disabled(int);
|
||||
#endif
|
||||
diff -Nur openssh-9.9p1.orig/cipher.c openssh-9.9p1/cipher.c
|
||||
--- openssh-9.9p1.orig/cipher.c 2025-01-20 20:48:33.392582095 +0100
|
||||
+++ openssh-9.9p1/cipher.c 2025-01-20 21:56:16.253016900 +0100
|
||||
--- openssh-9.9p1.orig/cipher.c 2025-03-06 00:02:47.472465746 +0100
|
||||
+++ openssh-9.9p1/cipher.c 2025-03-06 00:03:46.264472602 +0100
|
||||
@@ -48,23 +48,39 @@
|
||||
#include "sshbuf.h"
|
||||
#include "ssherr.h"
|
||||
|
|
@ -5013,7 +5013,7 @@ diff -Nur openssh-9.9p1.orig/cipher.c openssh-9.9p1/cipher.c
|
|||
}
|
||||
diff -Nur openssh-9.9p1.orig/cipher-chachapoly.c openssh-9.9p1/cipher-chachapoly.c
|
||||
--- openssh-9.9p1.orig/cipher-chachapoly.c 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/cipher-chachapoly.c 2025-01-20 20:50:04.569813773 +0100
|
||||
+++ openssh-9.9p1/cipher-chachapoly.c 2025-03-06 00:03:46.266944464 +0100
|
||||
@@ -88,7 +88,7 @@
|
||||
if (!do_encrypt) {
|
||||
const u_char *tag = src + aadlen + len;
|
||||
|
|
@ -5034,7 +5034,7 @@ diff -Nur openssh-9.9p1.orig/cipher-chachapoly.c openssh-9.9p1/cipher-chachapoly
|
|||
r = 0;
|
||||
diff -Nur openssh-9.9p1.orig/cipher-chachapoly-libcrypto.c openssh-9.9p1/cipher-chachapoly-libcrypto.c
|
||||
--- openssh-9.9p1.orig/cipher-chachapoly-libcrypto.c 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/cipher-chachapoly-libcrypto.c 2025-01-20 21:59:09.157459134 +0100
|
||||
+++ openssh-9.9p1/cipher-chachapoly-libcrypto.c 2025-03-06 00:03:46.268029005 +0100
|
||||
@@ -34,8 +34,17 @@
|
||||
#include "ssherr.h"
|
||||
#include "cipher-chachapoly.h"
|
||||
|
|
@ -5099,7 +5099,7 @@ diff -Nur openssh-9.9p1.orig/cipher-chachapoly-libcrypto.c openssh-9.9p1/cipher-
|
|||
r = 0;
|
||||
diff -Nur openssh-9.9p1.orig/cipher-chachapoly-libcrypto-mt.c openssh-9.9p1/cipher-chachapoly-libcrypto-mt.c
|
||||
--- openssh-9.9p1.orig/cipher-chachapoly-libcrypto-mt.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/cipher-chachapoly-libcrypto-mt.c 2025-01-20 20:50:04.570813776 +0100
|
||||
+++ openssh-9.9p1/cipher-chachapoly-libcrypto-mt.c 2025-03-06 00:03:46.268472605 +0100
|
||||
@@ -0,0 +1,695 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2023 The Board of Trustees of Carnegie Mellon University.
|
||||
|
|
@ -5798,7 +5798,7 @@ diff -Nur openssh-9.9p1.orig/cipher-chachapoly-libcrypto-mt.c openssh-9.9p1/ciph
|
|||
+#endif /* defined(HAVE_EVP_CHACHA20) && !defined(HAVE_BROKEN_CHACHA20) */
|
||||
diff -Nur openssh-9.9p1.orig/cipher-chachapoly-libcrypto-mt.h openssh-9.9p1/cipher-chachapoly-libcrypto-mt.h
|
||||
--- openssh-9.9p1.orig/cipher-chachapoly-libcrypto-mt.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/cipher-chachapoly-libcrypto-mt.h 2025-01-20 20:50:04.571813779 +0100
|
||||
+++ openssh-9.9p1/cipher-chachapoly-libcrypto-mt.h 2025-03-06 00:03:46.269694620 +0100
|
||||
@@ -0,0 +1,45 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2023 The Board of Trustees of Carnegie Mellon University.
|
||||
|
|
@ -5847,7 +5847,7 @@ diff -Nur openssh-9.9p1.orig/cipher-chachapoly-libcrypto-mt.h openssh-9.9p1/ciph
|
|||
+#endif /* CHACHA_POLY_LIBCRYPTO_MT_H */
|
||||
diff -Nur openssh-9.9p1.orig/cipher-ctr-mt.c openssh-9.9p1/cipher-ctr-mt.c
|
||||
--- openssh-9.9p1.orig/cipher-ctr-mt.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/cipher-ctr-mt.c 2025-01-20 20:50:04.571813779 +0100
|
||||
+++ openssh-9.9p1/cipher-ctr-mt.c 2025-03-06 00:03:46.270435656 +0100
|
||||
@@ -0,0 +1,677 @@
|
||||
+/*
|
||||
+ * OpenSSH Multi-threaded AES-CTR Cipher
|
||||
|
|
@ -6528,7 +6528,7 @@ diff -Nur openssh-9.9p1.orig/cipher-ctr-mt.c openssh-9.9p1/cipher-ctr-mt.c
|
|||
+#endif /* OSSL Check */
|
||||
diff -Nur openssh-9.9p1.orig/cipher-ctr-mt-functions.c openssh-9.9p1/cipher-ctr-mt-functions.c
|
||||
--- openssh-9.9p1.orig/cipher-ctr-mt-functions.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/cipher-ctr-mt-functions.c 2025-01-20 20:50:04.572813781 +0100
|
||||
+++ openssh-9.9p1/cipher-ctr-mt-functions.c 2025-03-06 00:03:46.271282116 +0100
|
||||
@@ -0,0 +1,668 @@
|
||||
+/*
|
||||
+ * OpenSSH Multi-threaded AES-CTR Cipher Provider for OpenSSL 3
|
||||
|
|
@ -7200,7 +7200,7 @@ diff -Nur openssh-9.9p1.orig/cipher-ctr-mt-functions.c openssh-9.9p1/cipher-ctr-
|
|||
+#endif /*WITH_OPENSSL3*/
|
||||
diff -Nur openssh-9.9p1.orig/cipher-ctr-mt-functions.h openssh-9.9p1/cipher-ctr-mt-functions.h
|
||||
--- openssh-9.9p1.orig/cipher-ctr-mt-functions.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/cipher-ctr-mt-functions.h 2025-01-20 20:50:04.572813781 +0100
|
||||
+++ openssh-9.9p1/cipher-ctr-mt-functions.h 2025-03-06 00:03:46.271948081 +0100
|
||||
@@ -0,0 +1,142 @@
|
||||
+/*
|
||||
+ * OpenSSH Multi-threaded AES-CTR Cipher Provider for OpenSSL 3
|
||||
|
|
@ -7346,7 +7346,7 @@ diff -Nur openssh-9.9p1.orig/cipher-ctr-mt-functions.h openssh-9.9p1/cipher-ctr-
|
|||
+#endif /* CTR_MT_FUNCS */
|
||||
diff -Nur openssh-9.9p1.orig/cipher-ctr-mt-provider.c openssh-9.9p1/cipher-ctr-mt-provider.c
|
||||
--- openssh-9.9p1.orig/cipher-ctr-mt-provider.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/cipher-ctr-mt-provider.c 2025-01-20 20:50:04.572813781 +0100
|
||||
+++ openssh-9.9p1/cipher-ctr-mt-provider.c 2025-03-06 00:03:46.273037795 +0100
|
||||
@@ -0,0 +1,390 @@
|
||||
+/*
|
||||
+ * OpenSSH Multi-threaded AES-CTR Cipher Provider for OpenSSL 3
|
||||
|
|
@ -7739,8 +7739,8 @@ diff -Nur openssh-9.9p1.orig/cipher-ctr-mt-provider.c openssh-9.9p1/cipher-ctr-m
|
|||
+
|
||||
+#endif /*WITH_OPENSSL3*/
|
||||
diff -Nur openssh-9.9p1.orig/cipher.h openssh-9.9p1/cipher.h
|
||||
--- openssh-9.9p1.orig/cipher.h 2025-01-20 20:48:33.392582095 +0100
|
||||
+++ openssh-9.9p1/cipher.h 2025-01-20 20:59:21.957234646 +0100
|
||||
--- openssh-9.9p1.orig/cipher.h 2025-03-06 00:02:47.472692777 +0100
|
||||
+++ openssh-9.9p1/cipher.h 2025-03-06 00:03:46.274674308 +0100
|
||||
@@ -42,11 +42,17 @@
|
||||
#include <openssl/evp.h>
|
||||
#endif
|
||||
|
|
@ -7799,7 +7799,7 @@ diff -Nur openssh-9.9p1.orig/cipher.h openssh-9.9p1/cipher.h
|
|||
|
||||
diff -Nur openssh-9.9p1.orig/cipher-switch.c openssh-9.9p1/cipher-switch.c
|
||||
--- openssh-9.9p1.orig/cipher-switch.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/cipher-switch.c 2025-01-20 20:50:04.573813784 +0100
|
||||
+++ openssh-9.9p1/cipher-switch.c 2025-03-06 00:03:46.275472610 +0100
|
||||
@@ -0,0 +1,73 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2023 The Board of Trustees of Carnegie Mellon University.
|
||||
|
|
@ -7876,7 +7876,7 @@ diff -Nur openssh-9.9p1.orig/cipher-switch.c openssh-9.9p1/cipher-switch.c
|
|||
+}
|
||||
diff -Nur openssh-9.9p1.orig/cipher-switch.h openssh-9.9p1/cipher-switch.h
|
||||
--- openssh-9.9p1.orig/cipher-switch.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/cipher-switch.h 2025-01-20 20:50:04.574813786 +0100
|
||||
+++ openssh-9.9p1/cipher-switch.h 2025-03-06 00:03:46.276602664 +0100
|
||||
@@ -0,0 +1,18 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2015 The Board of Trustees of Carnegie Mellon University.
|
||||
|
|
@ -7897,8 +7897,8 @@ diff -Nur openssh-9.9p1.orig/cipher-switch.h openssh-9.9p1/cipher-switch.h
|
|||
+
|
||||
+void cipher_switch (struct ssh *);
|
||||
diff -Nur openssh-9.9p1.orig/clientloop.c openssh-9.9p1/clientloop.c
|
||||
--- openssh-9.9p1.orig/clientloop.c 2025-01-20 20:48:33.290581837 +0100
|
||||
+++ openssh-9.9p1/clientloop.c 2025-01-20 20:50:04.575813789 +0100
|
||||
--- openssh-9.9p1.orig/clientloop.c 2025-03-06 00:02:47.319373879 +0100
|
||||
+++ openssh-9.9p1/clientloop.c 2025-03-06 00:03:46.277472612 +0100
|
||||
@@ -114,6 +114,7 @@
|
||||
#include "msg.h"
|
||||
#include "ssherr.h"
|
||||
|
|
@ -8189,8 +8189,8 @@ diff -Nur openssh-9.9p1.orig/clientloop.c openssh-9.9p1/clientloop.c
|
|||
len = 900;
|
||||
if (want_subsystem) {
|
||||
diff -Nur openssh-9.9p1.orig/compat.c openssh-9.9p1/compat.c
|
||||
--- openssh-9.9p1.orig/compat.c 2025-01-20 20:48:33.422582171 +0100
|
||||
+++ openssh-9.9p1/compat.c 2025-01-20 22:39:30.315877553 +0100
|
||||
--- openssh-9.9p1.orig/compat.c 2025-03-06 00:02:47.517601287 +0100
|
||||
+++ openssh-9.9p1/compat.c 2025-03-06 00:03:46.279242089 +0100
|
||||
@@ -135,6 +135,35 @@
|
||||
ssh->compat = check[i].bugs;
|
||||
if (forbid_ssh_rsa)
|
||||
|
|
@ -8228,8 +8228,8 @@ diff -Nur openssh-9.9p1.orig/compat.c openssh-9.9p1/compat.c
|
|||
}
|
||||
}
|
||||
diff -Nur openssh-9.9p1.orig/compat.h openssh-9.9p1/compat.h
|
||||
--- openssh-9.9p1.orig/compat.h 2025-01-20 20:48:33.423582174 +0100
|
||||
+++ openssh-9.9p1/compat.h 2025-01-20 22:36:35.778448062 +0100
|
||||
--- openssh-9.9p1.orig/compat.h 2025-03-06 00:02:47.517890963 +0100
|
||||
+++ openssh-9.9p1/compat.h 2025-03-06 00:03:46.279861907 +0100
|
||||
@@ -46,12 +46,12 @@
|
||||
/* #define unused 0x00010000 */
|
||||
/* #define unused 0x00020000 */
|
||||
|
|
@ -8247,8 +8247,8 @@ diff -Nur openssh-9.9p1.orig/compat.h openssh-9.9p1/compat.h
|
|||
#define SSH_BUG_DYNAMIC_RPORT 0x08000000
|
||||
#define SSH_BUG_CURVE25519PAD 0x10000000
|
||||
diff -Nur openssh-9.9p1.orig/configure.ac openssh-9.9p1/configure.ac
|
||||
--- openssh-9.9p1.orig/configure.ac 2025-01-20 20:48:33.447582234 +0100
|
||||
+++ openssh-9.9p1/configure.ac 2025-01-20 20:50:04.577813794 +0100
|
||||
--- openssh-9.9p1.orig/configure.ac 2025-03-06 00:02:47.565439463 +0100
|
||||
+++ openssh-9.9p1/configure.ac 2025-03-06 00:03:46.280472614 +0100
|
||||
@@ -2945,8 +2945,8 @@
|
||||
200*) # LibreSSL
|
||||
lver=`echo "$sslver" | sed 's/.*libressl-//'`
|
||||
|
|
@ -8301,7 +8301,7 @@ diff -Nur openssh-9.9p1.orig/configure.ac openssh-9.9p1/configure.ac
|
|||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
diff -Nur openssh-9.9p1.orig/defines.h openssh-9.9p1/defines.h
|
||||
--- openssh-9.9p1.orig/defines.h 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/defines.h 2025-01-20 20:50:04.578813797 +0100
|
||||
+++ openssh-9.9p1/defines.h 2025-03-06 00:03:46.282574554 +0100
|
||||
@@ -889,7 +889,7 @@
|
||||
#endif
|
||||
|
||||
|
|
@ -8313,7 +8313,7 @@ diff -Nur openssh-9.9p1.orig/defines.h openssh-9.9p1/defines.h
|
|||
/*
|
||||
diff -Nur openssh-9.9p1.orig/digest.h openssh-9.9p1/digest.h
|
||||
--- openssh-9.9p1.orig/digest.h 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/digest.h 2025-01-20 20:50:04.578813797 +0100
|
||||
+++ openssh-9.9p1/digest.h 2025-03-06 00:03:46.283074368 +0100
|
||||
@@ -27,7 +27,8 @@
|
||||
#define SSH_DIGEST_SHA256 2
|
||||
#define SSH_DIGEST_SHA384 3
|
||||
|
|
@ -8326,7 +8326,7 @@ diff -Nur openssh-9.9p1.orig/digest.h openssh-9.9p1/digest.h
|
|||
struct ssh_digest_ctx;
|
||||
diff -Nur openssh-9.9p1.orig/digest-openssl.c openssh-9.9p1/digest-openssl.c
|
||||
--- openssh-9.9p1.orig/digest-openssl.c 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/digest-openssl.c 2025-01-20 20:50:04.578813797 +0100
|
||||
+++ openssh-9.9p1/digest-openssl.c 2025-03-06 00:03:46.283460143 +0100
|
||||
@@ -61,6 +61,7 @@
|
||||
{ SSH_DIGEST_SHA256, "SHA256", 32, EVP_sha256 },
|
||||
{ SSH_DIGEST_SHA384, "SHA384", 48, EVP_sha384 },
|
||||
|
|
@ -8337,7 +8337,7 @@ diff -Nur openssh-9.9p1.orig/digest-openssl.c openssh-9.9p1/digest-openssl.c
|
|||
|
||||
diff -Nur openssh-9.9p1.orig/FUNDING.yml openssh-9.9p1/FUNDING.yml
|
||||
--- openssh-9.9p1.orig/FUNDING.yml 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/FUNDING.yml 2025-01-20 20:50:04.578813797 +0100
|
||||
+++ openssh-9.9p1/FUNDING.yml 2025-03-06 00:03:46.283744812 +0100
|
||||
@@ -0,0 +1,12 @@
|
||||
+# These are supported funding model platforms
|
||||
+
|
||||
|
|
@ -8353,7 +8353,7 @@ diff -Nur openssh-9.9p1.orig/FUNDING.yml openssh-9.9p1/FUNDING.yml
|
|||
+#custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||
diff -Nur openssh-9.9p1.orig/HPN-README openssh-9.9p1/HPN-README
|
||||
--- openssh-9.9p1.orig/HPN-README 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/HPN-README 2025-01-20 20:50:04.578813797 +0100
|
||||
+++ openssh-9.9p1/HPN-README 2025-03-06 00:03:46.284024116 +0100
|
||||
@@ -0,0 +1,170 @@
|
||||
+Notes:
|
||||
+
|
||||
|
|
@ -8527,7 +8527,7 @@ diff -Nur openssh-9.9p1.orig/HPN-README openssh-9.9p1/HPN-README
|
|||
+Edited: October 11, 2023
|
||||
diff -Nur openssh-9.9p1.orig/HPNSSHInstallation.txt openssh-9.9p1/HPNSSHInstallation.txt
|
||||
--- openssh-9.9p1.orig/HPNSSHInstallation.txt 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/HPNSSHInstallation.txt 2025-01-20 20:50:04.579813799 +0100
|
||||
+++ openssh-9.9p1/HPNSSHInstallation.txt 2025-03-06 00:03:46.284407436 +0100
|
||||
@@ -0,0 +1,354 @@
|
||||
+HPN-SSH Installation
|
||||
+
|
||||
|
|
@ -8884,8 +8884,8 @@ diff -Nur openssh-9.9p1.orig/HPNSSHInstallation.txt openssh-9.9p1/HPNSSHInstalla
|
|||
+restorecon /usr/bin/hpnssh-keygen
|
||||
+restorecon /etc/pam.d/hpnsshd
|
||||
diff -Nur openssh-9.9p1.orig/kex.c openssh-9.9p1/kex.c
|
||||
--- openssh-9.9p1.orig/kex.c 2025-01-20 20:48:33.420582166 +0100
|
||||
+++ openssh-9.9p1/kex.c 2025-01-20 20:50:04.579813799 +0100
|
||||
--- openssh-9.9p1.orig/kex.c 2025-03-06 00:02:47.510955696 +0100
|
||||
+++ openssh-9.9p1/kex.c 2025-03-06 00:03:46.284781657 +0100
|
||||
@@ -67,6 +67,7 @@
|
||||
|
||||
#include "ssherr.h"
|
||||
|
|
@ -9104,8 +9104,8 @@ diff -Nur openssh-9.9p1.orig/kex.c openssh-9.9p1/kex.c
|
|||
mismatch = 0;
|
||||
switch (remote_major) {
|
||||
diff -Nur openssh-9.9p1.orig/mac.c openssh-9.9p1/mac.c
|
||||
--- openssh-9.9p1.orig/mac.c 2025-01-20 20:48:33.394582100 +0100
|
||||
+++ openssh-9.9p1/mac.c 2025-01-20 20:50:04.580813802 +0100
|
||||
--- openssh-9.9p1.orig/mac.c 2025-03-06 00:02:47.473662177 +0100
|
||||
+++ openssh-9.9p1/mac.c 2025-03-06 00:03:46.285715098 +0100
|
||||
@@ -63,6 +63,7 @@
|
||||
{ "hmac-sha2-512", SSH_DIGEST, SSH_DIGEST_SHA512, 0, 0, 0, 0 },
|
||||
{ "hmac-md5", SSH_DIGEST, SSH_DIGEST_MD5, 0, 0, 0, 0 },
|
||||
|
|
@ -9115,8 +9115,8 @@ diff -Nur openssh-9.9p1.orig/mac.c openssh-9.9p1/mac.c
|
|||
{ "umac-128@openssh.com", SSH_UMAC128, 0, 0, 128, 128, 0 },
|
||||
|
||||
diff -Nur openssh-9.9p1.orig/Makefile.in openssh-9.9p1/Makefile.in
|
||||
--- openssh-9.9p1.orig/Makefile.in 2025-01-20 20:48:33.449582239 +0100
|
||||
+++ openssh-9.9p1/Makefile.in 2025-01-20 21:02:30.432714955 +0100
|
||||
--- openssh-9.9p1.orig/Makefile.in 2025-03-06 00:02:47.569151796 +0100
|
||||
+++ openssh-9.9p1/Makefile.in 2025-03-06 00:15:12.570995734 +0100
|
||||
@@ -51,7 +51,7 @@
|
||||
CFLAGS_NOPIE=@CFLAGS_NOPIE@
|
||||
CPPFLAGS=-I. -I$(srcdir) @CPPFLAGS@ $(PATHS) @DEFS@
|
||||
|
|
@ -9172,14 +9172,14 @@ diff -Nur openssh-9.9p1.orig/Makefile.in openssh-9.9p1/Makefile.in
|
|||
$(LD) -o $@ $(SSHD_SESSION_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHDLIBS) $(LIBS) $(GSSLIBS) $(K5LIBS) $(CHANNELLIBS)
|
||||
|
||||
scp$(EXEEXT): $(LIBCOMPAT) libssh.a $(SCP_OBJS)
|
||||
- $(LD) -o $@ $(SCP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS)
|
||||
+ $(LD) -o $@ $(SCP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(CHANNELLIBS)
|
||||
- $(LD) -o $@ $(SCP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lcrypto $(LIBS)
|
||||
+ $(LD) -o $@ $(SCP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lcrypto $(LIBS) $(CHANNELLIBS)
|
||||
|
||||
ssh-add$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHADD_OBJS)
|
||||
$(LD) -o $@ $(SSHADD_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(CHANNELLIBS)
|
||||
diff -Nur openssh-9.9p1.orig/metrics.c openssh-9.9p1/metrics.c
|
||||
--- openssh-9.9p1.orig/metrics.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/metrics.c 2025-01-20 20:50:04.581813804 +0100
|
||||
+++ openssh-9.9p1/metrics.c 2025-03-06 00:03:46.286472619 +0100
|
||||
@@ -0,0 +1,444 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2022 The Board of Trustees of Carnegie Mellon University.
|
||||
|
|
@ -9627,7 +9627,7 @@ diff -Nur openssh-9.9p1.orig/metrics.c openssh-9.9p1/metrics.c
|
|||
+}
|
||||
diff -Nur openssh-9.9p1.orig/metrics.h openssh-9.9p1/metrics.h
|
||||
--- openssh-9.9p1.orig/metrics.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/metrics.h 2025-01-20 20:50:04.581813804 +0100
|
||||
+++ openssh-9.9p1/metrics.h 2025-03-06 00:03:46.287403100 +0100
|
||||
@@ -0,0 +1,45 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2022 The Board of Trustees of Carnegie Mellon University.
|
||||
|
|
@ -9675,8 +9675,8 @@ diff -Nur openssh-9.9p1.orig/metrics.h openssh-9.9p1/metrics.h
|
|||
+
|
||||
+#endif /* define metrics_h */
|
||||
diff -Nur openssh-9.9p1.orig/misc.c openssh-9.9p1/misc.c
|
||||
--- openssh-9.9p1.orig/misc.c 2025-01-20 20:48:33.449582239 +0100
|
||||
+++ openssh-9.9p1/misc.c 2025-01-20 20:50:04.582813807 +0100
|
||||
--- openssh-9.9p1.orig/misc.c 2025-03-06 00:02:47.569564363 +0100
|
||||
+++ openssh-9.9p1/misc.c 2025-03-06 00:03:46.287674841 +0100
|
||||
@@ -77,6 +77,29 @@
|
||||
#include "ssherr.h"
|
||||
#include "platform.h"
|
||||
|
|
@ -9707,7 +9707,7 @@ diff -Nur openssh-9.9p1.orig/misc.c openssh-9.9p1/misc.c
|
|||
/* remove newline at end of string */
|
||||
char *
|
||||
chop(char *s)
|
||||
@@ -1649,20 +1672,6 @@
|
||||
@@ -1670,20 +1693,6 @@
|
||||
return (v);
|
||||
}
|
||||
|
||||
|
|
@ -9728,7 +9728,7 @@ diff -Nur openssh-9.9p1.orig/misc.c openssh-9.9p1/misc.c
|
|||
u_int16_t
|
||||
get_u16(const void *vp)
|
||||
{
|
||||
@@ -1702,17 +1711,6 @@
|
||||
@@ -1723,17 +1732,6 @@
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -9747,9 +9747,9 @@ diff -Nur openssh-9.9p1.orig/misc.c openssh-9.9p1/misc.c
|
|||
{
|
||||
u_char *p = (u_char *)vp;
|
||||
diff -Nur openssh-9.9p1.orig/misc.h openssh-9.9p1/misc.h
|
||||
--- openssh-9.9p1.orig/misc.h 2025-01-20 20:48:33.450582242 +0100
|
||||
+++ openssh-9.9p1/misc.h 2025-01-20 20:50:04.582813807 +0100
|
||||
@@ -166,12 +166,6 @@
|
||||
--- openssh-9.9p1.orig/misc.h 2025-03-06 00:02:47.570052185 +0100
|
||||
+++ openssh-9.9p1/misc.h 2025-03-06 00:03:46.288478447 +0100
|
||||
@@ -167,12 +167,6 @@
|
||||
void put_u16(void *, u_int16_t)
|
||||
__attribute__((__bounded__( __minbytes__, 1, 2)));
|
||||
|
||||
|
|
@ -9762,7 +9762,7 @@ diff -Nur openssh-9.9p1.orig/misc.h openssh-9.9p1/misc.h
|
|||
struct bwlimit {
|
||||
size_t buflen;
|
||||
u_int64_t rate; /* desired rate in kbit/s */
|
||||
@@ -258,4 +252,16 @@
|
||||
@@ -259,4 +253,16 @@
|
||||
/* On OpenBSD time_t is int64_t which is long long. */
|
||||
/* #define SSH_TIME_T_MAX LLONG_MAX */
|
||||
|
||||
|
|
@ -9780,8 +9780,8 @@ diff -Nur openssh-9.9p1.orig/misc.h openssh-9.9p1/misc.h
|
|||
+
|
||||
#endif /* _MISC_H */
|
||||
diff -Nur openssh-9.9p1.orig/myproposal.h openssh-9.9p1/myproposal.h
|
||||
--- openssh-9.9p1.orig/myproposal.h 2025-01-20 20:48:33.407582133 +0100
|
||||
+++ openssh-9.9p1/myproposal.h 2025-01-20 20:50:04.583813809 +0100
|
||||
--- openssh-9.9p1.orig/myproposal.h 2025-03-06 00:02:47.492549025 +0100
|
||||
+++ openssh-9.9p1/myproposal.h 2025-03-06 00:03:46.289049737 +0100
|
||||
@@ -71,7 +71,8 @@
|
||||
"rsa-sha2-256"
|
||||
|
||||
|
|
@ -9794,7 +9794,7 @@ diff -Nur openssh-9.9p1.orig/myproposal.h openssh-9.9p1/myproposal.h
|
|||
|
||||
diff -Nur openssh-9.9p1.orig/num.c openssh-9.9p1/num.c
|
||||
--- openssh-9.9p1.orig/num.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/num.c 2025-01-20 20:50:04.583813809 +0100
|
||||
+++ openssh-9.9p1/num.c 2025-03-06 00:03:46.289504958 +0100
|
||||
@@ -0,0 +1,156 @@
|
||||
+/* CC0 license applied, see LICENCE.md */
|
||||
+
|
||||
|
|
@ -9954,7 +9954,7 @@ diff -Nur openssh-9.9p1.orig/num.c openssh-9.9p1/num.c
|
|||
+#endif /* WITH_OPENSSL3 */
|
||||
diff -Nur openssh-9.9p1.orig/num.h openssh-9.9p1/num.h
|
||||
--- openssh-9.9p1.orig/num.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/num.h 2025-01-20 20:50:04.584813812 +0100
|
||||
+++ openssh-9.9p1/num.h 2025-03-06 00:03:46.289787706 +0100
|
||||
@@ -0,0 +1,15 @@
|
||||
+/* CC0 license applied, see LICENCE.md */
|
||||
+
|
||||
|
|
@ -9973,7 +9973,7 @@ diff -Nur openssh-9.9p1.orig/num.h openssh-9.9p1/num.h
|
|||
+#endif /* WITH_OPENSSL3 */
|
||||
diff -Nur openssh-9.9p1.orig/ossl3-provider-err.c openssh-9.9p1/ossl3-provider-err.c
|
||||
--- openssh-9.9p1.orig/ossl3-provider-err.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/ossl3-provider-err.c 2025-01-20 20:50:04.584813812 +0100
|
||||
+++ openssh-9.9p1/ossl3-provider-err.c 2025-03-06 00:03:46.290517654 +0100
|
||||
@@ -0,0 +1,108 @@
|
||||
+/* CC0 license applied, see LICENCE.md */
|
||||
+
|
||||
|
|
@ -10085,7 +10085,7 @@ diff -Nur openssh-9.9p1.orig/ossl3-provider-err.c openssh-9.9p1/ossl3-provider-e
|
|||
+#endif /* WITH_OPENSSL3 */
|
||||
diff -Nur openssh-9.9p1.orig/ossl3-provider-err.h openssh-9.9p1/ossl3-provider-err.h
|
||||
--- openssh-9.9p1.orig/ossl3-provider-err.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/ossl3-provider-err.h 2025-01-20 20:50:04.584813812 +0100
|
||||
+++ openssh-9.9p1/ossl3-provider-err.h 2025-03-06 00:03:46.291399029 +0100
|
||||
@@ -0,0 +1,73 @@
|
||||
+/* CC0 license applied, see LICENCE.md */
|
||||
+
|
||||
|
|
@ -10161,8 +10161,8 @@ diff -Nur openssh-9.9p1.orig/ossl3-provider-err.h openssh-9.9p1/ossl3-provider-e
|
|||
+ uint32_t reason, const char *fmt, ...);
|
||||
+#endif /* WITH_OPENSSL3 */
|
||||
diff -Nur openssh-9.9p1.orig/packet.c openssh-9.9p1/packet.c
|
||||
--- openssh-9.9p1.orig/packet.c 2025-01-20 20:48:33.396582105 +0100
|
||||
+++ openssh-9.9p1/packet.c 2025-01-20 20:50:04.585813814 +0100
|
||||
--- openssh-9.9p1.orig/packet.c 2025-03-06 00:02:47.476047142 +0100
|
||||
+++ openssh-9.9p1/packet.c 2025-03-06 00:03:46.292778473 +0100
|
||||
@@ -63,6 +63,9 @@
|
||||
#endif
|
||||
#include <signal.h>
|
||||
|
|
@ -10544,8 +10544,8 @@ diff -Nur openssh-9.9p1.orig/packet.c openssh-9.9p1/packet.c
|
|||
+ return ssh->state->receive_context;
|
||||
+}
|
||||
diff -Nur openssh-9.9p1.orig/packet.h openssh-9.9p1/packet.h
|
||||
--- openssh-9.9p1.orig/packet.h 2025-01-20 20:48:33.397582108 +0100
|
||||
+++ openssh-9.9p1/packet.h 2025-01-20 20:50:04.585813814 +0100
|
||||
--- openssh-9.9p1.orig/packet.h 2025-03-06 00:02:47.476894520 +0100
|
||||
+++ openssh-9.9p1/packet.h 2025-03-06 00:03:46.294844410 +0100
|
||||
@@ -88,6 +88,17 @@
|
||||
|
||||
/* APP data */
|
||||
|
|
@ -10589,7 +10589,7 @@ diff -Nur openssh-9.9p1.orig/packet.h openssh-9.9p1/packet.h
|
|||
int sshpkt_start(struct ssh *ssh, u_char type);
|
||||
diff -Nur openssh-9.9p1.orig/poly1305.c openssh-9.9p1/poly1305.c
|
||||
--- openssh-9.9p1.orig/poly1305.c 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/poly1305.c 2025-01-20 20:50:04.586813817 +0100
|
||||
+++ openssh-9.9p1/poly1305.c 2025-03-06 00:03:46.295372696 +0100
|
||||
@@ -13,6 +13,16 @@
|
||||
|
||||
#include "poly1305.h"
|
||||
|
|
@ -10623,7 +10623,7 @@ diff -Nur openssh-9.9p1.orig/poly1305.c openssh-9.9p1/poly1305.c
|
|||
+#endif /* OPENSSL_HAVE_POLY_EVP */
|
||||
diff -Nur openssh-9.9p1.orig/poly1305.h openssh-9.9p1/poly1305.h
|
||||
--- openssh-9.9p1.orig/poly1305.h 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/poly1305.h 2025-01-20 20:50:04.586813817 +0100
|
||||
+++ openssh-9.9p1/poly1305.h 2025-03-06 00:03:46.295740329 +0100
|
||||
@@ -13,8 +13,15 @@
|
||||
#define POLY1305_KEYLEN 32
|
||||
#define POLY1305_TAGLEN 16
|
||||
|
|
@ -10643,7 +10643,7 @@ diff -Nur openssh-9.9p1.orig/poly1305.h openssh-9.9p1/poly1305.h
|
|||
__attribute__((__bounded__(__minbytes__, 4, POLY1305_KEYLEN)));
|
||||
diff -Nur openssh-9.9p1.orig/progressmeter.c openssh-9.9p1/progressmeter.c
|
||||
--- openssh-9.9p1.orig/progressmeter.c 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/progressmeter.c 2025-01-20 20:50:04.586813817 +0100
|
||||
+++ openssh-9.9p1/progressmeter.c 2025-03-06 00:03:46.296169377 +0100
|
||||
@@ -66,6 +66,8 @@
|
||||
static off_t start_pos; /* initial position of transfer */
|
||||
static off_t end_pos; /* ending position of transfer */
|
||||
|
|
@ -10703,8 +10703,8 @@ diff -Nur openssh-9.9p1.orig/progressmeter.c openssh-9.9p1/progressmeter.c
|
|||
|
||||
static void
|
||||
diff -Nur openssh-9.9p1.orig/readconf.c openssh-9.9p1/readconf.c
|
||||
--- openssh-9.9p1.orig/readconf.c 2025-01-20 20:48:33.452582247 +0100
|
||||
+++ openssh-9.9p1/readconf.c 2025-01-20 21:03:08.963813150 +0100
|
||||
--- openssh-9.9p1.orig/readconf.c 2025-03-06 00:02:47.571947367 +0100
|
||||
+++ openssh-9.9p1/readconf.c 2025-03-06 00:03:46.296928830 +0100
|
||||
@@ -72,6 +72,7 @@
|
||||
#include "myproposal.h"
|
||||
#include "digest.h"
|
||||
|
|
@ -10758,7 +10758,7 @@ diff -Nur openssh-9.9p1.orig/readconf.c openssh-9.9p1/readconf.c
|
|||
}
|
||||
return port;
|
||||
}
|
||||
@@ -1317,6 +1333,63 @@
|
||||
@@ -1335,6 +1351,63 @@
|
||||
intptr = &options->check_host_ip;
|
||||
goto parse_flag;
|
||||
|
||||
|
|
@ -10822,7 +10822,7 @@ diff -Nur openssh-9.9p1.orig/readconf.c openssh-9.9p1/readconf.c
|
|||
case oVerifyHostKeyDNS:
|
||||
intptr = &options->verify_host_key_dns;
|
||||
multistate_ptr = multistate_yesnoask;
|
||||
@@ -2712,6 +2785,17 @@
|
||||
@@ -2730,6 +2803,17 @@
|
||||
options->ip_qos_interactive = -1;
|
||||
options->ip_qos_bulk = -1;
|
||||
options->request_tty = -1;
|
||||
|
|
@ -10840,7 +10840,7 @@ diff -Nur openssh-9.9p1.orig/readconf.c openssh-9.9p1/readconf.c
|
|||
options->session_type = -1;
|
||||
options->stdin_null = -1;
|
||||
options->fork_after_authentication = -1;
|
||||
@@ -2895,8 +2979,37 @@
|
||||
@@ -2913,8 +2997,37 @@
|
||||
options->server_alive_interval = 0;
|
||||
if (options->server_alive_count_max == -1)
|
||||
options->server_alive_count_max = 3;
|
||||
|
|
@ -10879,8 +10879,8 @@ diff -Nur openssh-9.9p1.orig/readconf.c openssh-9.9p1/readconf.c
|
|||
options->control_persist = 0;
|
||||
options->control_persist_timeout = 0;
|
||||
diff -Nur openssh-9.9p1.orig/readconf.h openssh-9.9p1/readconf.h
|
||||
--- openssh-9.9p1.orig/readconf.h 2025-01-20 20:48:33.452582247 +0100
|
||||
+++ openssh-9.9p1/readconf.h 2025-01-21 07:26:17.608445051 +0100
|
||||
--- openssh-9.9p1.orig/readconf.h 2025-03-06 00:02:47.572498872 +0100
|
||||
+++ openssh-9.9p1/readconf.h 2025-03-06 00:03:46.298406263 +0100
|
||||
@@ -56,6 +56,8 @@
|
||||
int strict_host_key_checking; /* Strict host key checking. */
|
||||
int compression; /* Compress packets in both directions. */
|
||||
|
|
@ -10910,7 +10910,7 @@ diff -Nur openssh-9.9p1.orig/readconf.h openssh-9.9p1/readconf.h
|
|||
int server_alive_interval;
|
||||
diff -Nur openssh-9.9p1.orig/README.md openssh-9.9p1/README.md
|
||||
--- openssh-9.9p1.orig/README.md 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/README.md 2025-01-20 20:50:04.588813822 +0100
|
||||
+++ openssh-9.9p1/README.md 2025-03-06 00:03:46.298977721 +0100
|
||||
@@ -1,12 +1,16 @@
|
||||
-# Portable OpenSSH
|
||||
+# HPNSSH: Based on Portable OpenSSH
|
||||
|
|
@ -10988,8 +10988,8 @@ diff -Nur openssh-9.9p1.orig/README.md openssh-9.9p1/README.md
|
|||
## Development
|
||||
|
||||
diff -Nur openssh-9.9p1.orig/sandbox-seccomp-filter.c openssh-9.9p1/sandbox-seccomp-filter.c
|
||||
--- openssh-9.9p1.orig/sandbox-seccomp-filter.c 2025-01-20 20:48:33.408582135 +0100
|
||||
+++ openssh-9.9p1/sandbox-seccomp-filter.c 2025-01-20 20:50:04.589813825 +0100
|
||||
--- openssh-9.9p1.orig/sandbox-seccomp-filter.c 2025-03-06 00:02:47.494624114 +0100
|
||||
+++ openssh-9.9p1/sandbox-seccomp-filter.c 2025-03-06 00:03:46.299287453 +0100
|
||||
@@ -295,6 +295,9 @@
|
||||
#ifdef __NR_geteuid32
|
||||
SC_ALLOW(__NR_geteuid32),
|
||||
|
|
@ -11011,8 +11011,8 @@ diff -Nur openssh-9.9p1.orig/sandbox-seccomp-filter.c openssh-9.9p1/sandbox-secc
|
|||
SC_ALLOW(__NR_time),
|
||||
#endif
|
||||
diff -Nur openssh-9.9p1.orig/scp.1 openssh-9.9p1/scp.1
|
||||
--- openssh-9.9p1.orig/scp.1 2025-01-20 20:48:33.380582065 +0100
|
||||
+++ openssh-9.9p1/scp.1 2025-01-20 22:18:33.595608452 +0100
|
||||
--- openssh-9.9p1.orig/scp.1 2025-03-06 00:02:47.452547228 +0100
|
||||
+++ openssh-9.9p1/scp.1 2025-03-06 00:03:46.299581622 +0100
|
||||
@@ -18,7 +18,7 @@
|
||||
.Nd OpenSSH secure file copy
|
||||
.Sh SYNOPSIS
|
||||
|
|
@ -11070,8 +11070,8 @@ diff -Nur openssh-9.9p1.orig/scp.1 openssh-9.9p1/scp.1
|
|||
The legacy SCP protocol (selected by the
|
||||
.Fl O
|
||||
diff -Nur openssh-9.9p1.orig/scp.c openssh-9.9p1/scp.c
|
||||
--- openssh-9.9p1.orig/scp.c 2025-01-20 20:48:33.382582070 +0100
|
||||
+++ openssh-9.9p1/scp.c 2025-01-21 07:44:00.216159475 +0100
|
||||
--- openssh-9.9p1.orig/scp.c 2025-03-06 00:02:47.455427828 +0100
|
||||
+++ openssh-9.9p1/scp.c 2025-03-06 00:03:46.299929309 +0100
|
||||
@@ -17,6 +17,7 @@
|
||||
/*
|
||||
* Copyright (c) 1999 Theo de Raadt. All rights reserved.
|
||||
|
|
@ -12041,8 +12041,8 @@ diff -Nur openssh-9.9p1.orig/scp.c openssh-9.9p1/scp.c
|
|||
cleanup_exit(int i)
|
||||
{
|
||||
diff -Nur openssh-9.9p1.orig/servconf.c openssh-9.9p1/servconf.c
|
||||
--- openssh-9.9p1.orig/servconf.c 2025-01-20 20:48:33.453582249 +0100
|
||||
+++ openssh-9.9p1/servconf.c 2025-01-20 22:27:14.328008145 +0100
|
||||
--- openssh-9.9p1.orig/servconf.c 2025-03-06 00:02:47.572857133 +0100
|
||||
+++ openssh-9.9p1/servconf.c 2025-03-06 00:03:46.301235473 +0100
|
||||
@@ -215,6 +215,11 @@
|
||||
options->authorized_principals_file = NULL;
|
||||
options->authorized_principals_command = NULL;
|
||||
|
|
@ -12103,7 +12103,7 @@ diff -Nur openssh-9.9p1.orig/servconf.c openssh-9.9p1/servconf.c
|
|||
*flags = keywords[i].flags;
|
||||
return keywords[i].opcode;
|
||||
}
|
||||
@@ -1593,12 +1618,32 @@
|
||||
@@ -1620,12 +1645,32 @@
|
||||
multistate_ptr = multistate_ignore_rhosts;
|
||||
goto parse_multistate;
|
||||
|
||||
|
|
@ -12137,8 +12137,8 @@ diff -Nur openssh-9.9p1.orig/servconf.c openssh-9.9p1/servconf.c
|
|||
intptr = &options->hostbased_authentication;
|
||||
goto parse_flag;
|
||||
diff -Nur openssh-9.9p1.orig/servconf.h openssh-9.9p1/servconf.h
|
||||
--- openssh-9.9p1.orig/servconf.h 2025-01-20 20:48:33.453582249 +0100
|
||||
+++ openssh-9.9p1/servconf.h 2025-01-20 22:28:39.829229874 +0100
|
||||
--- openssh-9.9p1.orig/servconf.h 2025-03-06 00:02:47.573461068 +0100
|
||||
+++ openssh-9.9p1/servconf.h 2025-03-06 00:03:46.302105841 +0100
|
||||
@@ -226,6 +226,12 @@
|
||||
char *pam_service_name;
|
||||
int permit_pam_user_change; /* Allow PAM to change user name */
|
||||
|
|
@ -12153,8 +12153,8 @@ diff -Nur openssh-9.9p1.orig/servconf.h openssh-9.9p1/servconf.h
|
|||
|
||||
char **permitted_opens; /* May also be one of PERMITOPEN_* */
|
||||
diff -Nur openssh-9.9p1.orig/serverloop.c openssh-9.9p1/serverloop.c
|
||||
--- openssh-9.9p1.orig/serverloop.c 2025-01-20 20:48:33.440582216 +0100
|
||||
+++ openssh-9.9p1/serverloop.c 2025-01-20 22:30:36.463532350 +0100
|
||||
--- openssh-9.9p1.orig/serverloop.c 2025-03-06 00:02:47.555664287 +0100
|
||||
+++ openssh-9.9p1/serverloop.c 2025-03-06 00:03:46.302523774 +0100
|
||||
@@ -81,6 +81,8 @@
|
||||
#include "serverloop.h"
|
||||
#include "ssherr.h"
|
||||
|
|
@ -12277,8 +12277,8 @@ diff -Nur openssh-9.9p1.orig/serverloop.c openssh-9.9p1/serverloop.c
|
|||
/* XXX sshpkt_get_end() */
|
||||
if (want_reply) {
|
||||
diff -Nur openssh-9.9p1.orig/session.c openssh-9.9p1/session.c
|
||||
--- openssh-9.9p1.orig/session.c 2025-01-20 20:48:33.402582120 +0100
|
||||
+++ openssh-9.9p1/session.c 2025-01-20 20:50:04.595813840 +0100
|
||||
--- openssh-9.9p1.orig/session.c 2025-03-06 00:02:47.485220859 +0100
|
||||
+++ openssh-9.9p1/session.c 2025-03-06 00:03:46.303031230 +0100
|
||||
@@ -94,6 +94,7 @@
|
||||
#include "monitor_wrap.h"
|
||||
#include "sftp.h"
|
||||
|
|
@ -12317,7 +12317,7 @@ diff -Nur openssh-9.9p1.orig/session.c openssh-9.9p1/session.c
|
|||
|
||||
diff -Nur openssh-9.9p1.orig/sftp.1 openssh-9.9p1/sftp.1
|
||||
--- openssh-9.9p1.orig/sftp.1 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/sftp.1 2025-01-20 20:50:04.595813840 +0100
|
||||
+++ openssh-9.9p1/sftp.1 2025-03-06 00:03:46.303472864 +0100
|
||||
@@ -299,7 +299,8 @@
|
||||
Specify how many requests may be outstanding at any one time.
|
||||
Increasing this may slightly improve file transfer speed
|
||||
|
|
@ -12344,8 +12344,8 @@ diff -Nur openssh-9.9p1.orig/sftp.1 openssh-9.9p1/sftp.1
|
|||
.El
|
||||
.El
|
||||
diff -Nur openssh-9.9p1.orig/sftp.c openssh-9.9p1/sftp.c
|
||||
--- openssh-9.9p1.orig/sftp.c 2025-01-20 20:48:33.383582072 +0100
|
||||
+++ openssh-9.9p1/sftp.c 2025-01-20 20:50:04.596813843 +0100
|
||||
--- openssh-9.9p1.orig/sftp.c 2025-03-06 00:02:47.457498062 +0100
|
||||
+++ openssh-9.9p1/sftp.c 2025-03-06 00:03:46.303799747 +0100
|
||||
@@ -2569,20 +2569,25 @@
|
||||
/* Please keep in sync with ssh.c -X */
|
||||
if (strncmp(optarg, "buffer=", 7) == 0) {
|
||||
|
|
@ -12378,8 +12378,8 @@ diff -Nur openssh-9.9p1.orig/sftp.c openssh-9.9p1/sftp.c
|
|||
}
|
||||
num_requests = (size_t)llv;
|
||||
diff -Nur openssh-9.9p1.orig/sftp-client.c openssh-9.9p1/sftp-client.c
|
||||
--- openssh-9.9p1.orig/sftp-client.c 2025-01-20 20:48:33.382582070 +0100
|
||||
+++ openssh-9.9p1/sftp-client.c 2025-01-20 20:50:04.596813843 +0100
|
||||
--- openssh-9.9p1.orig/sftp-client.c 2025-03-06 00:02:47.456913565 +0100
|
||||
+++ openssh-9.9p1/sftp-client.c 2025-03-06 00:03:46.304241330 +0100
|
||||
@@ -72,7 +72,8 @@
|
||||
#define DEFAULT_COPY_BUFLEN 32768
|
||||
|
||||
|
|
@ -12391,8 +12391,8 @@ diff -Nur openssh-9.9p1.orig/sftp-client.c openssh-9.9p1/sftp-client.c
|
|||
/* Minimum amount of data to read at a time */
|
||||
#define MIN_READ_SIZE 512
|
||||
diff -Nur openssh-9.9p1.orig/ssh.1 openssh-9.9p1/ssh.1
|
||||
--- openssh-9.9p1.orig/ssh.1 2025-01-20 20:48:33.453582249 +0100
|
||||
+++ openssh-9.9p1/ssh.1 2025-01-20 21:06:00.112249282 +0100
|
||||
--- openssh-9.9p1.orig/ssh.1 2025-03-06 00:02:47.573721054 +0100
|
||||
+++ openssh-9.9p1/ssh.1 2025-03-06 00:03:46.304641917 +0100
|
||||
@@ -77,6 +77,14 @@
|
||||
X11 connections, arbitrary TCP ports and
|
||||
.Ux Ns -domain
|
||||
|
|
@ -12485,7 +12485,7 @@ diff -Nur openssh-9.9p1.orig/ssh.1 openssh-9.9p1/ssh.1
|
|||
+Foundation.
|
||||
diff -Nur openssh-9.9p1.orig/ssh_api.c openssh-9.9p1/ssh_api.c
|
||||
--- openssh-9.9p1.orig/ssh_api.c 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/ssh_api.c 2025-01-20 20:50:04.598813848 +0100
|
||||
+++ openssh-9.9p1/ssh_api.c 2025-03-06 00:03:46.304987518 +0100
|
||||
@@ -427,7 +427,7 @@
|
||||
char *cp;
|
||||
int r;
|
||||
|
|
@ -12497,7 +12497,7 @@ diff -Nur openssh-9.9p1.orig/ssh_api.c openssh-9.9p1/ssh_api.c
|
|||
return r;
|
||||
diff -Nur openssh-9.9p1.orig/sshbuf.c openssh-9.9p1/sshbuf.c
|
||||
--- openssh-9.9p1.orig/sshbuf.c 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/sshbuf.c 2025-01-20 20:50:04.598813848 +0100
|
||||
+++ openssh-9.9p1/sshbuf.c 2025-03-06 00:03:46.305297731 +0100
|
||||
@@ -27,6 +27,9 @@
|
||||
#define SSHBUF_INTERNAL
|
||||
#include "sshbuf.h"
|
||||
|
|
@ -12616,7 +12616,7 @@ diff -Nur openssh-9.9p1.orig/sshbuf.c openssh-9.9p1/sshbuf.c
|
|||
SSHBUF_DBG(("realloc fail"));
|
||||
diff -Nur openssh-9.9p1.orig/sshbuf.h openssh-9.9p1/sshbuf.h
|
||||
--- openssh-9.9p1.orig/sshbuf.h 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/sshbuf.h 2025-01-20 20:50:04.598813848 +0100
|
||||
+++ openssh-9.9p1/sshbuf.h 2025-03-06 00:03:46.305570694 +0100
|
||||
@@ -29,18 +29,49 @@
|
||||
# endif /* OPENSSL_HAS_ECC */
|
||||
#endif /* WITH_OPENSSL */
|
||||
|
|
@ -12696,8 +12696,8 @@ diff -Nur openssh-9.9p1.orig/sshbuf.h openssh-9.9p1/sshbuf.h
|
|||
#ifdef SSHBUF_INTERNAL
|
||||
|
||||
diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
||||
--- openssh-9.9p1.orig/ssh.c 2025-01-20 20:48:33.454582252 +0100
|
||||
+++ openssh-9.9p1/ssh.c 2025-01-20 20:50:04.599813850 +0100
|
||||
--- openssh-9.9p1.orig/ssh.c 2025-03-06 00:02:47.574118417 +0100
|
||||
+++ openssh-9.9p1/ssh.c 2025-03-06 00:03:46.305952260 +0100
|
||||
@@ -109,6 +109,7 @@
|
||||
#include "ssherr.h"
|
||||
#include "myproposal.h"
|
||||
|
|
@ -12706,7 +12706,7 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
|
||||
#ifdef ENABLE_PKCS11
|
||||
#include "ssh-pkcs11.h"
|
||||
@@ -1113,6 +1114,10 @@
|
||||
@@ -1124,6 +1125,10 @@
|
||||
break;
|
||||
case 'T':
|
||||
options.request_tty = REQUEST_TTY_NO;
|
||||
|
|
@ -12717,7 +12717,7 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
break;
|
||||
case 'o':
|
||||
line = xstrdup(optarg);
|
||||
@@ -1682,10 +1687,36 @@
|
||||
@@ -1693,9 +1698,35 @@
|
||||
}
|
||||
|
||||
/* Open a connection to the remote host. */
|
||||
|
|
@ -12729,8 +12729,7 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
+tryagain:
|
||||
if (ssh_connect(ssh, host, options.host_arg, addrs, &hostaddr,
|
||||
options.port, options.connection_attempts,
|
||||
- &timeout_ms, options.tcp_keep_alive) != 0)
|
||||
+ &timeout_ms, options.tcp_keep_alive) != 0) {
|
||||
&timeout_ms, options.tcp_keep_alive) != 0) {
|
||||
+ /* could not connect. If the port requested is the same as
|
||||
+ * hpnssh default port then fallback. Otherwise, exit */
|
||||
+ if ((options.port == default_ssh_port()) && options.fallback) {
|
||||
|
|
@ -12748,14 +12747,13 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
+ cname, sizeof(cname));
|
||||
+ goto tryagain;
|
||||
+ } else {
|
||||
+ redhat_usage();
|
||||
+ exit(255);
|
||||
+ }
|
||||
redhat_usage();
|
||||
exit(255);
|
||||
+ }
|
||||
|
||||
if (addrs != NULL)
|
||||
freeaddrinfo(addrs);
|
||||
@@ -1896,7 +1927,7 @@
|
||||
}
|
||||
@@ -1909,7 +1940,7 @@
|
||||
|
||||
/* Do fork() after authentication. Used by "ssh -f" */
|
||||
static void
|
||||
|
|
@ -12764,7 +12762,7 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
{
|
||||
if (need_controlpersist_detach)
|
||||
control_persist_detach();
|
||||
@@ -1906,17 +1937,21 @@
|
||||
@@ -1919,17 +1950,21 @@
|
||||
fatal("daemon() failed: %.200s", strerror(errno));
|
||||
if (stdfd_devnull(1, 1, !(log_is_on_stderr() && debug_flag)) == -1)
|
||||
error_f("stdfd_devnull failed");
|
||||
|
|
@ -12788,7 +12786,7 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
} else {
|
||||
debug2_f("%d expected forwarding replies remaining",
|
||||
forward_confirms_pending);
|
||||
@@ -1983,7 +2018,7 @@
|
||||
@@ -1996,7 +2031,7 @@
|
||||
"for listen port %d", rfwd->listen_port);
|
||||
}
|
||||
}
|
||||
|
|
@ -12797,7 +12795,7 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
}
|
||||
|
||||
static void
|
||||
@@ -2010,7 +2045,7 @@
|
||||
@@ -2023,7 +2058,7 @@
|
||||
}
|
||||
|
||||
debug_f("tunnel forward established, id=%d", id);
|
||||
|
|
@ -12806,7 +12804,7 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
}
|
||||
|
||||
static void
|
||||
@@ -2211,6 +2246,15 @@
|
||||
@@ -2224,6 +2259,15 @@
|
||||
NULL, fileno(stdin), command, environ);
|
||||
}
|
||||
|
||||
|
|
@ -12822,7 +12820,7 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
/* open new channel for a session */
|
||||
static int
|
||||
ssh_session2_open(struct ssh *ssh)
|
||||
@@ -2232,6 +2276,7 @@
|
||||
@@ -2245,6 +2289,7 @@
|
||||
window = CHAN_SES_WINDOW_DEFAULT;
|
||||
packetmax = CHAN_SES_PACKET_DEFAULT;
|
||||
if (tty_flag) {
|
||||
|
|
@ -12830,7 +12828,7 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
window >>= 1;
|
||||
packetmax >>= 1;
|
||||
}
|
||||
@@ -2240,6 +2285,12 @@
|
||||
@@ -2253,6 +2298,12 @@
|
||||
window, packetmax, CHAN_EXTENDED_WRITE,
|
||||
"client-session", CHANNEL_NONBLOCK_STDIO);
|
||||
|
||||
|
|
@ -12843,7 +12841,7 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
debug3_f("channel_new: %d", c->self);
|
||||
|
||||
channel_send_open(ssh, c->self);
|
||||
@@ -2256,6 +2307,13 @@
|
||||
@@ -2269,6 +2320,13 @@
|
||||
int r, interactive, id = -1;
|
||||
char *cp, *tun_fwd_ifname = NULL;
|
||||
|
||||
|
|
@ -12857,7 +12855,7 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
/* XXX should be pre-session */
|
||||
if (!options.control_persist)
|
||||
ssh_init_stdio_forwarding(ssh);
|
||||
@@ -2354,7 +2412,14 @@
|
||||
@@ -2367,7 +2425,14 @@
|
||||
debug("deferring postauth fork until remote forward "
|
||||
"confirmation received");
|
||||
} else
|
||||
|
|
@ -12874,8 +12872,8 @@ diff -Nur openssh-9.9p1.orig/ssh.c openssh-9.9p1/ssh.c
|
|||
|
||||
return client_loop(ssh, tty_flag, tty_flag ?
|
||||
diff -Nur openssh-9.9p1.orig/ssh_config.5 openssh-9.9p1/ssh_config.5
|
||||
--- openssh-9.9p1.orig/ssh_config.5 2025-01-20 20:48:33.454582252 +0100
|
||||
+++ openssh-9.9p1/ssh_config.5 2025-01-20 20:50:04.600813853 +0100
|
||||
--- openssh-9.9p1.orig/ssh_config.5 2025-03-06 00:02:47.574702687 +0100
|
||||
+++ openssh-9.9p1/ssh_config.5 2025-03-06 00:03:46.307757180 +0100
|
||||
@@ -62,6 +62,19 @@
|
||||
.Pq Pa /etc/ssh/ssh_config
|
||||
.El
|
||||
|
|
@ -13045,8 +13043,8 @@ diff -Nur openssh-9.9p1.orig/ssh_config.5 openssh-9.9p1/ssh_config.5
|
|||
+with grants from Cisco, the National Library of Medicine, and
|
||||
+the National Science Foundation.
|
||||
diff -Nur openssh-9.9p1.orig/sshconnect2.c openssh-9.9p1/sshconnect2.c
|
||||
--- openssh-9.9p1.orig/sshconnect2.c 2025-01-20 20:48:33.455582254 +0100
|
||||
+++ openssh-9.9p1/sshconnect2.c 2025-01-20 20:50:04.601813855 +0100
|
||||
--- openssh-9.9p1.orig/sshconnect2.c 2025-03-06 00:02:47.575075435 +0100
|
||||
+++ openssh-9.9p1/sshconnect2.c 2025-03-06 00:03:46.309944495 +0100
|
||||
@@ -76,6 +76,7 @@
|
||||
#include "utf8.h"
|
||||
#include "ssh-sk.h"
|
||||
|
|
@ -13113,8 +13111,8 @@ diff -Nur openssh-9.9p1.orig/sshconnect2.c openssh-9.9p1/sshconnect2.c
|
|||
verbose("Authenticated to %s ([%s]:%d) using \"%s\".", host,
|
||||
ssh_remote_ipaddr(ssh), ssh_remote_port(ssh),
|
||||
diff -Nur openssh-9.9p1.orig/sshd.8 openssh-9.9p1/sshd.8
|
||||
--- openssh-9.9p1.orig/sshd.8 2025-01-20 20:48:33.455582254 +0100
|
||||
+++ openssh-9.9p1/sshd.8 2025-01-20 20:50:04.601813855 +0100
|
||||
--- openssh-9.9p1.orig/sshd.8 2025-03-06 00:02:47.575467713 +0100
|
||||
+++ openssh-9.9p1/sshd.8 2025-03-06 00:03:46.310931002 +0100
|
||||
@@ -1079,3 +1079,7 @@
|
||||
protocol versions 1.5 and 2.0.
|
||||
Niels Provos and Markus Friedl contributed support
|
||||
|
|
@ -13124,8 +13122,8 @@ diff -Nur openssh-9.9p1.orig/sshd.8 openssh-9.9p1/sshd.8
|
|||
+from Cisco, the National Library of Medicine, and the National Science
|
||||
+Foundation.
|
||||
diff -Nur openssh-9.9p1.orig/sshd.c openssh-9.9p1/sshd.c
|
||||
--- openssh-9.9p1.orig/sshd.c 2025-01-20 20:48:33.410582141 +0100
|
||||
+++ openssh-9.9p1/sshd.c 2025-01-20 20:50:04.602813858 +0100
|
||||
--- openssh-9.9p1.orig/sshd.c 2025-03-06 00:02:47.498532392 +0100
|
||||
+++ openssh-9.9p1/sshd.c 2025-03-06 00:03:46.311364199 +0100
|
||||
@@ -760,6 +760,8 @@
|
||||
int ret, listen_sock;
|
||||
struct addrinfo *ai;
|
||||
|
|
@ -13167,8 +13165,8 @@ diff -Nur openssh-9.9p1.orig/sshd.c openssh-9.9p1/sshd.c
|
|||
if (options.authorized_keys_command_user == NULL &&
|
||||
(options.authorized_keys_command != NULL &&
|
||||
diff -Nur openssh-9.9p1.orig/sshd_config openssh-9.9p1/sshd_config
|
||||
--- openssh-9.9p1.orig/sshd_config 2025-01-20 20:48:33.456582257 +0100
|
||||
+++ openssh-9.9p1/sshd_config 2025-01-20 21:06:55.293389906 +0100
|
||||
--- openssh-9.9p1.orig/sshd_config 2025-03-06 00:02:47.575729549 +0100
|
||||
+++ openssh-9.9p1/sshd_config 2025-03-06 00:03:46.311771393 +0100
|
||||
@@ -18,7 +18,7 @@
|
||||
# SELinux about this change.
|
||||
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
|
||||
|
|
@ -13199,8 +13197,8 @@ diff -Nur openssh-9.9p1.orig/sshd_config openssh-9.9p1/sshd_config
|
|||
#Match User anoncvs
|
||||
# X11Forwarding no
|
||||
diff -Nur openssh-9.9p1.orig/sshd_config.5 openssh-9.9p1/sshd_config.5
|
||||
--- openssh-9.9p1.orig/sshd_config.5 2025-01-20 20:48:33.456582257 +0100
|
||||
+++ openssh-9.9p1/sshd_config.5 2025-01-20 20:50:04.604813863 +0100
|
||||
--- openssh-9.9p1.orig/sshd_config.5 2025-03-06 00:02:47.576117771 +0100
|
||||
+++ openssh-9.9p1/sshd_config.5 2025-03-06 00:03:46.312158063 +0100
|
||||
@@ -56,6 +56,16 @@
|
||||
.Pq \&"
|
||||
in order to represent arguments containing spaces.
|
||||
|
|
@ -13288,8 +13286,8 @@ diff -Nur openssh-9.9p1.orig/sshd_config.5 openssh-9.9p1/sshd_config.5
|
|||
+with grants from Cisco, the National Library of Medicine, and
|
||||
+the National Science Foundation.
|
||||
diff -Nur openssh-9.9p1.orig/sshd-session.c openssh-9.9p1/sshd-session.c
|
||||
--- openssh-9.9p1.orig/sshd-session.c 2025-01-20 20:48:33.457582259 +0100
|
||||
+++ openssh-9.9p1/sshd-session.c 2025-01-20 20:50:04.604813863 +0100
|
||||
--- openssh-9.9p1.orig/sshd-session.c 2025-03-06 00:02:47.578548500 +0100
|
||||
+++ openssh-9.9p1/sshd-session.c 2025-03-06 00:03:46.312830269 +0100
|
||||
@@ -1196,6 +1196,20 @@
|
||||
}
|
||||
endpwent();
|
||||
|
|
@ -13335,7 +13333,7 @@ diff -Nur openssh-9.9p1.orig/sshd-session.c openssh-9.9p1/sshd-session.c
|
|||
options.rekey_interval);
|
||||
diff -Nur openssh-9.9p1.orig/ssh.h openssh-9.9p1/ssh.h
|
||||
--- openssh-9.9p1.orig/ssh.h 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/ssh.h 2025-01-20 20:50:04.605813865 +0100
|
||||
+++ openssh-9.9p1/ssh.h 2025-03-06 00:03:46.313350852 +0100
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
/* Default port number. */
|
||||
|
|
@ -13354,8 +13352,8 @@ diff -Nur openssh-9.9p1.orig/ssh.h openssh-9.9p1/ssh.h
|
|||
/*
|
||||
* Name of the environment variable containing the process ID of the
|
||||
diff -Nur openssh-9.9p1.orig/sshkey.c openssh-9.9p1/sshkey.c
|
||||
--- openssh-9.9p1.orig/sshkey.c 2025-01-20 20:48:33.411582143 +0100
|
||||
+++ openssh-9.9p1/sshkey.c 2025-01-20 20:50:04.606813868 +0100
|
||||
--- openssh-9.9p1.orig/sshkey.c 2025-03-06 00:02:47.499384834 +0100
|
||||
+++ openssh-9.9p1/sshkey.c 2025-03-06 00:03:46.313728891 +0100
|
||||
@@ -1778,7 +1778,8 @@
|
||||
stderr);
|
||||
#endif
|
||||
|
|
@ -13419,7 +13417,7 @@ diff -Nur openssh-9.9p1.orig/sshkey.c openssh-9.9p1/sshkey.c
|
|||
encrypted_len, 0, authlen)) != 0) {
|
||||
diff -Nur openssh-9.9p1.orig/sshkey-xmss.c openssh-9.9p1/sshkey-xmss.c
|
||||
--- openssh-9.9p1.orig/sshkey-xmss.c 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/sshkey-xmss.c 2025-01-20 20:50:04.606813868 +0100
|
||||
+++ openssh-9.9p1/sshkey-xmss.c 2025-03-06 00:03:46.314567857 +0100
|
||||
@@ -903,9 +903,29 @@
|
||||
state->enc_keyiv == NULL ||
|
||||
state->enc_ciphername == NULL)
|
||||
|
|
@ -13506,7 +13504,7 @@ diff -Nur openssh-9.9p1.orig/sshkey-xmss.c openssh-9.9p1/sshkey-xmss.c
|
|||
goto out;
|
||||
diff -Nur openssh-9.9p1.orig/umac.c openssh-9.9p1/umac.c
|
||||
--- openssh-9.9p1.orig/umac.c 2024-09-20 00:20:48.000000000 +0200
|
||||
+++ openssh-9.9p1/umac.c 2025-01-20 20:50:04.607813871 +0100
|
||||
+++ openssh-9.9p1/umac.c 2025-03-06 00:03:46.314996446 +0100
|
||||
@@ -134,15 +134,48 @@
|
||||
/* --- Endian Conversion --- Forcing assembly on some platforms */
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
|
@ -13561,7 +13559,7 @@ diff -Nur openssh-9.9p1.orig/umac.c openssh-9.9p1/umac.c
|
|||
/* ---------------------------------------------------------------------- */
|
||||
diff -Nur openssh-9.9p1.orig/uthash.h openssh-9.9p1/uthash.h
|
||||
--- openssh-9.9p1.orig/uthash.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ openssh-9.9p1/uthash.h 2025-01-20 20:50:04.608813873 +0100
|
||||
+++ openssh-9.9p1/uthash.h 2025-03-06 00:03:46.315743751 +0100
|
||||
@@ -0,0 +1,1140 @@
|
||||
+/*
|
||||
+Copyright (c) 2003-2022, Troy D. Hanson https://troydhanson.github.io/uthash/
|
||||
|
|
@ -14704,8 +14702,8 @@ diff -Nur openssh-9.9p1.orig/uthash.h openssh-9.9p1/uthash.h
|
|||
+
|
||||
+#endif /* UTHASH_H */
|
||||
diff -Nur openssh-9.9p1.orig/version.h openssh-9.9p1/version.h
|
||||
--- openssh-9.9p1.orig/version.h 2025-01-20 20:48:33.457582259 +0100
|
||||
+++ openssh-9.9p1/version.h 2025-01-20 21:09:18.648755010 +0100
|
||||
--- openssh-9.9p1.orig/version.h 2025-03-06 00:02:47.580790077 +0100
|
||||
+++ openssh-9.9p1/version.h 2025-03-06 00:03:46.315977822 +0100
|
||||
@@ -16,5 +16,6 @@
|
||||
|
||||
#define SSH_PORTABLE "p1"
|
||||
|
|
|
|||
471
openssh-9.9p1-match-regression.patch
Normal file
471
openssh-9.9p1-match-regression.patch
Normal file
|
|
@ -0,0 +1,471 @@
|
|||
diff --git a/misc.c b/misc.c
|
||||
index afdf5142..1b4b55c5 100644
|
||||
--- a/misc.c
|
||||
+++ b/misc.c
|
||||
@@ -107,6 +107,27 @@ rtrim(char *s)
|
||||
}
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * returns pointer to character after 'prefix' in 's' or otherwise NULL
|
||||
+ * if the prefix is not present.
|
||||
+ */
|
||||
+const char *
|
||||
+strprefix(const char *s, const char *prefix, int ignorecase)
|
||||
+{
|
||||
+ size_t prefixlen;
|
||||
+
|
||||
+ if ((prefixlen = strlen(prefix)) == 0)
|
||||
+ return s;
|
||||
+ if (ignorecase) {
|
||||
+ if (strncasecmp(s, prefix, prefixlen) != 0)
|
||||
+ return NULL;
|
||||
+ } else {
|
||||
+ if (strncmp(s, prefix, prefixlen) != 0)
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ return s + prefixlen;
|
||||
+}
|
||||
+
|
||||
/* set/unset filedescriptor to non-blocking */
|
||||
int
|
||||
set_nonblock(int fd)
|
||||
diff --git a/misc.h b/misc.h
|
||||
index 11340389..efecdf1a 100644
|
||||
--- a/misc.h
|
||||
+++ b/misc.h
|
||||
@@ -56,6 +56,7 @@ struct ForwardOptions {
|
||||
char *chop(char *);
|
||||
void rtrim(char *);
|
||||
void skip_space(char **);
|
||||
+const char *strprefix(const char *, const char *, int);
|
||||
char *strdelim(char **);
|
||||
char *strdelimw(char **);
|
||||
int set_nonblock(int);
|
||||
diff --git a/readconf.c b/readconf.c
|
||||
index 3d9cc6db..9f559269 100644
|
||||
--- a/readconf.c
|
||||
+++ b/readconf.c
|
||||
@@ -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, *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,7 +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 = attrib = argv_next(acp, avp)) != NULL) {
|
||||
+ while ((attrib = argv_next(acp, avp)) != NULL) {
|
||||
+ attrib = oattrib = xstrdup(attrib);
|
||||
/* Terminate on comment */
|
||||
if (*attrib == '#') {
|
||||
argv_consume(acp);
|
||||
@@ -777,9 +778,23 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp,
|
||||
this_result ? "" : "not ", oattrib);
|
||||
continue;
|
||||
}
|
||||
+
|
||||
+ /* Keep this list in sync with below */
|
||||
+ if (strprefix(attrib, "host=", 1) != NULL ||
|
||||
+ strprefix(attrib, "originalhost=", 1) != NULL ||
|
||||
+ strprefix(attrib, "user=", 1) != NULL ||
|
||||
+ strprefix(attrib, "localuser=", 1) != NULL ||
|
||||
+ strprefix(attrib, "localnetwork=", 1) != NULL ||
|
||||
+ strprefix(attrib, "tagged=", 1) != NULL ||
|
||||
+ strprefix(attrib, "exec=", 1) != NULL) {
|
||||
+ arg = strchr(attrib, '=');
|
||||
+ *(arg++) = '\0';
|
||||
+ } else {
|
||||
+ arg = argv_next(acp, avp);
|
||||
+ }
|
||||
+
|
||||
/* All other criteria require an argument */
|
||||
- if ((arg = argv_next(acp, avp)) == NULL ||
|
||||
- *arg == '\0' || *arg == '#') {
|
||||
+ if (arg == NULL || *arg == '\0' || *arg == '#') {
|
||||
error("Missing Match criteria for %s", attrib);
|
||||
result = -1;
|
||||
goto out;
|
||||
@@ -856,6 +871,8 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp,
|
||||
criteria == NULL ? "" : criteria,
|
||||
criteria == NULL ? "" : "\"");
|
||||
free(criteria);
|
||||
+ free(oattrib);
|
||||
+ oattrib = attrib = NULL;
|
||||
}
|
||||
if (attributes == 0) {
|
||||
error("One or more attributes required for Match");
|
||||
@@ -865,6 +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(oattrib);
|
||||
free(host);
|
||||
return result;
|
||||
}
|
||||
diff --git a/servconf.c b/servconf.c
|
||||
index 89b8413e..dd774f46 100644
|
||||
--- a/servconf.c
|
||||
+++ b/servconf.c
|
||||
@@ -1,4 +1,4 @@
|
||||
-/* $OpenBSD: servconf.c,v 1.418 2024/09/15 03:09:44 djm Exp $ */
|
||||
+/* $OpenBSD: servconf.c,v 1.419 2024/09/25 01:24:04 djm Exp $ */
|
||||
/*
|
||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||
* All rights reserved
|
||||
@@ -1033,7 +1033,7 @@ match_cfg_line(const char *full_line, int *acp, char ***avp,
|
||||
int line, struct connection_info *ci)
|
||||
{
|
||||
int result = 1, attributes = 0, port;
|
||||
- char *arg, *attrib;
|
||||
+ char *arg, *attrib = NULL, *oattrib;
|
||||
|
||||
if (ci == NULL)
|
||||
debug3("checking syntax for 'Match %s'", full_line);
|
||||
@@ -1047,7 +1047,8 @@ match_cfg_line(const char *full_line, int *acp, char ***avp,
|
||||
ci->laddress ? ci->laddress : "(null)", ci->lport);
|
||||
}
|
||||
|
||||
- while ((attrib = argv_next(acp, avp)) != NULL) {
|
||||
+ while ((oattrib = argv_next(acp, avp)) != NULL) {
|
||||
+ attrib = xstrdup(oattrib);
|
||||
/* Terminate on comment */
|
||||
if (*attrib == '#') {
|
||||
argv_consume(acp); /* mark all arguments consumed */
|
||||
@@ -1062,16 +1063,20 @@ match_cfg_line(const char *full_line, int *acp, char ***avp,
|
||||
*arg != '\0' && *arg != '#')) {
|
||||
error("'all' cannot be combined with other "
|
||||
"Match attributes");
|
||||
- return -1;
|
||||
+ result = -1;
|
||||
+ goto out;
|
||||
}
|
||||
if (arg != NULL && *arg == '#')
|
||||
argv_consume(acp); /* consume remaining args */
|
||||
- return 1;
|
||||
+ result = 1;
|
||||
+ goto out;
|
||||
}
|
||||
/* Criterion "invalid-user" also has no argument */
|
||||
if (strcasecmp(attrib, "invalid-user") == 0) {
|
||||
- if (ci == NULL)
|
||||
+ if (ci == NULL) {
|
||||
+ result = 0;
|
||||
continue;
|
||||
+ }
|
||||
if (ci->user_invalid == 0)
|
||||
result = 0;
|
||||
else
|
||||
@@ -1078,11 +1081,26 @@ match_cfg_line(const char *full_line, int *acp, char ***avp,
|
||||
debug("matched invalid-user at line %d", line);
|
||||
continue;
|
||||
}
|
||||
+
|
||||
+ /* Keep this list in sync with below */
|
||||
+ if (strprefix(attrib, "user=", 1) != NULL ||
|
||||
+ strprefix(attrib, "group=", 1) != NULL ||
|
||||
+ strprefix(attrib, "host=", 1) != NULL ||
|
||||
+ strprefix(attrib, "address=", 1) != NULL ||
|
||||
+ strprefix(attrib, "localaddress=", 1) != NULL ||
|
||||
+ strprefix(attrib, "localport=", 1) != NULL ||
|
||||
+ strprefix(attrib, "rdomain=", 1) != NULL) {
|
||||
+ arg = strchr(attrib, '=');
|
||||
+ *(arg++) = '\0';
|
||||
+ } else {
|
||||
+ arg = argv_next(acp, avp);
|
||||
+ }
|
||||
+
|
||||
/* All other criteria require an argument */
|
||||
- if ((arg = argv_next(acp, avp)) == NULL ||
|
||||
- *arg == '\0' || *arg == '#') {
|
||||
+ if (arg == NULL || *arg == '\0' || *arg == '#') {
|
||||
error("Missing Match criteria for %s", attrib);
|
||||
- return -1;
|
||||
+ result = -1;
|
||||
+ goto out;
|
||||
}
|
||||
if (strcasecmp(attrib, "user") == 0) {
|
||||
if (ci == NULL || (ci->test && ci->user == NULL)) {
|
||||
@@ -1105,7 +1123,8 @@ match_cfg_line(const char *full_line, int *acp, char ***avp,
|
||||
match_test_missing_fatal("Group", "user");
|
||||
switch (match_cfg_line_group(arg, line, ci->user)) {
|
||||
case -1:
|
||||
- return -1;
|
||||
+ result = -1;
|
||||
+ goto out;
|
||||
case 0:
|
||||
result = 0;
|
||||
}
|
||||
@@ -1141,7 +1160,8 @@ match_cfg_line(const char *full_line, int *acp, char ***avp,
|
||||
result = 0;
|
||||
break;
|
||||
case -2:
|
||||
- return -1;
|
||||
+ result = -1;
|
||||
+ goto out;
|
||||
}
|
||||
} else if (strcasecmp(attrib, "localaddress") == 0){
|
||||
if (ci == NULL || (ci->test && ci->laddress == NULL)) {
|
||||
@@ -1166,13 +1186,15 @@ match_cfg_line(const char *full_line, int *acp, char ***avp,
|
||||
result = 0;
|
||||
break;
|
||||
case -2:
|
||||
- return -1;
|
||||
+ result = -1;
|
||||
+ goto out;
|
||||
}
|
||||
} else if (strcasecmp(attrib, "localport") == 0) {
|
||||
if ((port = a2port(arg)) == -1) {
|
||||
error("Invalid LocalPort '%s' on Match line",
|
||||
arg);
|
||||
- return -1;
|
||||
+ result = -1;
|
||||
+ goto out;
|
||||
}
|
||||
if (ci == NULL || (ci->test && ci->lport == -1)) {
|
||||
result = 0;
|
||||
@@ -1200,16 +1222,21 @@ match_cfg_line(const char *full_line, int *acp, char ***avp,
|
||||
debug("user %.100s matched 'RDomain %.100s' at "
|
||||
"line %d", ci->rdomain, arg, line);
|
||||
} else {
|
||||
- error("Unsupported Match attribute %s", attrib);
|
||||
- return -1;
|
||||
+ error("Unsupported Match attribute %s", oattrib);
|
||||
+ result = -1;
|
||||
+ goto out;
|
||||
}
|
||||
+ free(attrib);
|
||||
+ attrib = NULL;
|
||||
}
|
||||
if (attributes == 0) {
|
||||
error("One or more attributes required for Match");
|
||||
return -1;
|
||||
}
|
||||
- if (ci != NULL)
|
||||
+ out:
|
||||
+ if (ci != NULL && result != -1)
|
||||
debug3("match %sfound", result ? "" : "not ");
|
||||
+ free(attrib);
|
||||
return result;
|
||||
}
|
||||
|
||||
diff --git a/regress/cfginclude.sh b/regress/cfginclude.sh
|
||||
index d442cdd6..97fd816f 100644
|
||||
--- a/regress/cfginclude.sh
|
||||
+++ b/regress/cfginclude.sh
|
||||
@@ -1,4 +1,4 @@
|
||||
-# $OpenBSD: cfginclude.sh,v 1.4 2024/09/03 05:58:56 djm Exp $
|
||||
+# $OpenBSD: cfginclude.sh,v 1.5 2024/09/27 01:05:54 djm Exp $
|
||||
# Placed in the Public Domain.
|
||||
|
||||
tid="config include"
|
||||
@@ -10,7 +10,7 @@ cat > $OBJ/ssh_config.i << _EOF
|
||||
Match host a
|
||||
Hostname aa
|
||||
|
||||
-Match host b # comment
|
||||
+Match host=b # comment
|
||||
Hostname bb
|
||||
Include $OBJ/ssh_config.i.*
|
||||
|
||||
@@ -18,7 +18,7 @@ Match host c
|
||||
Include $OBJ/ssh_config.i.*
|
||||
Hostname cc
|
||||
|
||||
-Match host m
|
||||
+Match host=m !user xxxyfake
|
||||
Include $OBJ/ssh_config.i.* # comment
|
||||
|
||||
Host d
|
||||
@@ -41,7 +41,7 @@ Match host xxxxxx
|
||||
_EOF
|
||||
|
||||
cat > $OBJ/ssh_config.i.1 << _EOF
|
||||
-Match host a
|
||||
+Match host=a
|
||||
Hostname aaa
|
||||
|
||||
Match host b
|
||||
@@ -64,10 +64,10 @@ cat > $OBJ/ssh_config.i.2 << _EOF
|
||||
Match host a
|
||||
Hostname aaaa
|
||||
|
||||
-Match host b
|
||||
+Match host=b !user blahblahfake
|
||||
Hostname bbbb
|
||||
|
||||
-Match host c
|
||||
+Match host=c
|
||||
Hostname cccc
|
||||
|
||||
Host d
|
||||
@@ -142,7 +142,7 @@ trial a aa
|
||||
|
||||
# cleanup
|
||||
rm -f $OBJ/ssh_config.i $OBJ/ssh_config.i.* $OBJ/ssh_config.out
|
||||
-# $OpenBSD: cfginclude.sh,v 1.4 2024/09/03 05:58:56 djm Exp $
|
||||
+# $OpenBSD: cfginclude.sh,v 1.5 2024/09/27 01:05:54 djm Exp $
|
||||
# Placed in the Public Domain.
|
||||
|
||||
tid="config include"
|
||||
diff --git a/regress/cfgmatch.sh b/regress/cfgmatch.sh
|
||||
index 05a66685..2737a5f9 100644
|
||||
--- a/regress/cfgmatch.sh
|
||||
+++ b/regress/cfgmatch.sh
|
||||
@@ -1,4 +1,4 @@
|
||||
-# $OpenBSD: cfgmatch.sh,v 1.13 2021/06/08 06:52:43 djm Exp $
|
||||
+# $OpenBSD: cfgmatch.sh,v 1.14 2024/09/27 01:05:54 djm Exp $
|
||||
# Placed in the Public Domain.
|
||||
|
||||
tid="sshd_config match"
|
||||
@@ -26,7 +26,7 @@ start_client()
|
||||
kill $client_pid
|
||||
fatal "timeout waiting for background ssh"
|
||||
fi
|
||||
- done
|
||||
+ done
|
||||
}
|
||||
|
||||
stop_client()
|
||||
@@ -119,40 +119,42 @@ stop_client
|
||||
# requires knowledge of actual group memberships user running the test).
|
||||
params="user:user:u1 host:host:h1 address:addr:1.2.3.4 \
|
||||
localaddress:laddr:5.6.7.8 rdomain:rdomain:rdom1"
|
||||
-cp $OBJ/sshd_proxy_bak $OBJ/sshd_config
|
||||
-echo 'Banner /nomatch' >>$OBJ/sshd_config
|
||||
-for i in $params; do
|
||||
- config=`echo $i | cut -f1 -d:`
|
||||
- criteria=`echo $i | cut -f2 -d:`
|
||||
- value=`echo $i | cut -f3 -d:`
|
||||
- cat >>$OBJ/sshd_config <<EOD
|
||||
- Match $config $value
|
||||
- Banner /$value
|
||||
+for separator in " " "=" ; do
|
||||
+ cp $OBJ/sshd_proxy_bak $OBJ/sshd_config
|
||||
+ echo 'Banner /nomatch' >>$OBJ/sshd_config
|
||||
+ for i in $params; do
|
||||
+ config=`echo $i | cut -f1 -d:`
|
||||
+ criteria=`echo $i | cut -f2 -d:`
|
||||
+ value=`echo $i | cut -f3 -d:`
|
||||
+ cat >>$OBJ/sshd_config <<EOD
|
||||
+ Match ${config}${separator}${value}
|
||||
+ Banner /$value
|
||||
EOD
|
||||
-done
|
||||
+ done
|
||||
|
||||
-${SUDO} ${SSHD} -f $OBJ/sshd_config -T >/dev/null || \
|
||||
- fail "validate config for w/out spec"
|
||||
-
|
||||
-# Test matching each criteria.
|
||||
-for i in $params; do
|
||||
- testcriteria=`echo $i | cut -f2 -d:`
|
||||
- expected=/`echo $i | cut -f3 -d:`
|
||||
- spec=""
|
||||
- for j in $params; do
|
||||
- config=`echo $j | cut -f1 -d:`
|
||||
- criteria=`echo $j | cut -f2 -d:`
|
||||
- value=`echo $j | cut -f3 -d:`
|
||||
- if [ "$criteria" = "$testcriteria" ]; then
|
||||
- spec="$criteria=$value,$spec"
|
||||
- else
|
||||
- spec="$criteria=1$value,$spec"
|
||||
+ ${SUDO} ${SSHD} -f $OBJ/sshd_config -T >/dev/null || \
|
||||
+ fail "validate config for w/out spec"
|
||||
+
|
||||
+ # Test matching each criteria.
|
||||
+ for i in $params; do
|
||||
+ testcriteria=`echo $i | cut -f2 -d:`
|
||||
+ expected=/`echo $i | cut -f3 -d:`
|
||||
+ spec=""
|
||||
+ for j in $params; do
|
||||
+ config=`echo $j | cut -f1 -d:`
|
||||
+ criteria=`echo $j | cut -f2 -d:`
|
||||
+ value=`echo $j | cut -f3 -d:`
|
||||
+ if [ "$criteria" = "$testcriteria" ]; then
|
||||
+ spec="$criteria=$value,$spec"
|
||||
+ else
|
||||
+ spec="$criteria=1$value,$spec"
|
||||
+ fi
|
||||
+ done
|
||||
+ trace "test spec $spec"
|
||||
+ result=`${SUDO} ${SSHD} -f $OBJ/sshd_config -T -C "$spec" | \
|
||||
+ awk '$1=="banner"{print $2}'`
|
||||
+ if [ "$result" != "$expected" ]; then
|
||||
+ fail "match $config expected $expected got $result"
|
||||
fi
|
||||
done
|
||||
- trace "test spec $spec"
|
||||
- result=`${SUDO} ${SSHD} -f $OBJ/sshd_config -T -C "$spec" | \
|
||||
- awk '$1=="banner"{print $2}'`
|
||||
- if [ "$result" != "$expected" ]; then
|
||||
- fail "match $config expected $expected got $result"
|
||||
- fi
|
||||
done
|
||||
diff --git a/regress/servcfginclude.sh b/regress/servcfginclude.sh
|
||||
index 518a703d..f67c3caa 100644
|
||||
--- a/regress/servcfginclude.sh
|
||||
+++ b/regress/servcfginclude.sh
|
||||
@@ -4,14 +4,14 @@ tid="server config include"
|
||||
|
||||
cat > $OBJ/sshd_config.i << _EOF
|
||||
HostKey $OBJ/host.ssh-ed25519
|
||||
-Match host a
|
||||
+Match host=a
|
||||
Banner /aa
|
||||
|
||||
Match host b
|
||||
Banner /bb
|
||||
Include $OBJ/sshd_config.i.* # comment
|
||||
|
||||
-Match host c
|
||||
+Match host=c
|
||||
Include $OBJ/sshd_config.i.* # comment
|
||||
Banner /cc
|
||||
|
||||
@@ -25,7 +25,7 @@ Match Host e
|
||||
Banner /ee
|
||||
Include $OBJ/sshd_config.i.*
|
||||
|
||||
-Match Host f
|
||||
+Match Host=f
|
||||
Include $OBJ/sshd_config.i.*
|
||||
Banner /ff
|
||||
|
||||
@@ -47,13 +47,13 @@ Match host b
|
||||
Match host c
|
||||
Banner /ccc
|
||||
|
||||
-Match Host d
|
||||
+Match Host=d
|
||||
Banner /ddd
|
||||
|
||||
Match Host e
|
||||
Banner /eee
|
||||
|
||||
-Match Host f
|
||||
+Match Host=f
|
||||
Banner /fff
|
||||
_EOF
|
||||
|
||||
@@ -61,13 +61,13 @@ cat > $OBJ/sshd_config.i.2 << _EOF
|
||||
Match host a
|
||||
Banner /aaaa
|
||||
|
||||
-Match host b
|
||||
+Match host=b
|
||||
Banner /bbbb
|
||||
|
||||
Match host c # comment
|
||||
Banner /cccc
|
||||
|
||||
-Match Host d
|
||||
+Match Host=d
|
||||
Banner /dddd
|
||||
|
||||
Match Host e
|
||||
152
openssh-9.9p2-error_processing.patch
Normal file
152
openssh-9.9p2-error_processing.patch
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
diff --git a/krl.c b/krl.c
|
||||
index e2efdf06..0d0f6953 100644
|
||||
--- a/krl.c
|
||||
+++ b/krl.c
|
||||
@@ -674,6 +674,7 @@ revoked_certs_generate(struct revoked_certs *rc, struct sshbuf *buf)
|
||||
break;
|
||||
case KRL_SECTION_CERT_SERIAL_BITMAP:
|
||||
if (rs->lo - bitmap_start > INT_MAX) {
|
||||
+ r = SSH_ERR_INVALID_FORMAT;
|
||||
error_f("insane bitmap gap");
|
||||
goto out;
|
||||
}
|
||||
@@ -1059,6 +1060,7 @@ ssh_krl_from_blob(struct sshbuf *buf, struct ssh_krl **krlp)
|
||||
}
|
||||
|
||||
if ((krl = ssh_krl_init()) == NULL) {
|
||||
+ r = SSH_ERR_ALLOC_FAIL;
|
||||
error_f("alloc failed");
|
||||
goto out;
|
||||
}
|
||||
diff --git a/packet.c b/packet.c
|
||||
index 486f8515..9dea2cfc 100644
|
||||
--- a/packet.c
|
||||
+++ b/packet.c
|
||||
@@ -1864,6 +1864,14 @@ ssh_packet_read_poll_seqnr(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p)
|
||||
if ((r = sshpkt_get_string_direct(ssh, &d, &len)) != 0)
|
||||
return r;
|
||||
DBG(debug("Received SSH2_MSG_PING len %zu", len));
|
||||
+ if (!ssh->state->after_authentication) {
|
||||
+ DBG(debug("Won't reply to PING in preauth"));
|
||||
+ break;
|
||||
+ }
|
||||
+ if (ssh_packet_is_rekeying(ssh)) {
|
||||
+ DBG(debug("Won't reply to PING during KEX"));
|
||||
+ break;
|
||||
+ }
|
||||
if ((r = sshpkt_start(ssh, SSH2_MSG_PONG)) != 0 ||
|
||||
(r = sshpkt_put_string(ssh, d, len)) != 0 ||
|
||||
(r = sshpkt_send(ssh)) != 0)
|
||||
diff --git a/ssh-agent.c b/ssh-agent.c
|
||||
index 48973b2c..c27c5a95 100644
|
||||
--- a/ssh-agent.c
|
||||
+++ b/ssh-agent.c
|
||||
@@ -1220,6 +1220,7 @@ parse_key_constraint_extension(struct sshbuf *m, char **sk_providerp,
|
||||
"restrict-destination-v00@openssh.com") == 0) {
|
||||
if (*dcsp != NULL) {
|
||||
error_f("%s already set", ext_name);
|
||||
+ r = SSH_ERR_INVALID_FORMAT;
|
||||
goto out;
|
||||
}
|
||||
if ((r = sshbuf_froms(m, &b)) != 0) {
|
||||
@@ -1229,6 +1230,7 @@ parse_key_constraint_extension(struct sshbuf *m, char **sk_providerp,
|
||||
while (sshbuf_len(b) != 0) {
|
||||
if (*ndcsp >= AGENT_MAX_DEST_CONSTRAINTS) {
|
||||
error_f("too many %s constraints", ext_name);
|
||||
+ r = SSH_ERR_INVALID_FORMAT;
|
||||
goto out;
|
||||
}
|
||||
*dcsp = xrecallocarray(*dcsp, *ndcsp, *ndcsp + 1,
|
||||
@@ -1246,6 +1248,7 @@ parse_key_constraint_extension(struct sshbuf *m, char **sk_providerp,
|
||||
}
|
||||
if (*certs != NULL) {
|
||||
error_f("%s already set", ext_name);
|
||||
+ r = SSH_ERR_INVALID_FORMAT;
|
||||
goto out;
|
||||
}
|
||||
if ((r = sshbuf_get_u8(m, &v)) != 0 ||
|
||||
@@ -1257,6 +1260,7 @@ parse_key_constraint_extension(struct sshbuf *m, char **sk_providerp,
|
||||
while (sshbuf_len(b) != 0) {
|
||||
if (*ncerts >= AGENT_MAX_EXT_CERTS) {
|
||||
error_f("too many %s constraints", ext_name);
|
||||
+ r = SSH_ERR_INVALID_FORMAT;
|
||||
goto out;
|
||||
}
|
||||
*certs = xrecallocarray(*certs, *ncerts, *ncerts + 1,
|
||||
@@ -1757,6 +1761,7 @@ process_ext_session_bind(SocketEntry *e)
|
||||
/* record new key/sid */
|
||||
if (e->nsession_ids >= AGENT_MAX_SESSION_IDS) {
|
||||
error_f("too many session IDs recorded");
|
||||
+ r = -1;
|
||||
goto out;
|
||||
}
|
||||
e->session_ids = xrecallocarray(e->session_ids, e->nsession_ids,
|
||||
diff --git a/ssh-sk-client.c b/ssh-sk-client.c
|
||||
index 321fe53a..06fad221 100644
|
||||
--- a/ssh-sk-client.c
|
||||
+++ b/ssh-sk-client.c
|
||||
@@ -439,6 +439,7 @@ sshsk_load_resident(const char *provider_path, const char *device,
|
||||
}
|
||||
if ((srk = calloc(1, sizeof(*srk))) == NULL) {
|
||||
error_f("calloc failed");
|
||||
+ r = SSH_ERR_ALLOC_FAIL;
|
||||
goto out;
|
||||
}
|
||||
srk->key = key;
|
||||
@@ -450,6 +451,7 @@ sshsk_load_resident(const char *provider_path, const char *device,
|
||||
if ((tmp = recallocarray(srks, nsrks, nsrks + 1,
|
||||
sizeof(*srks))) == NULL) {
|
||||
error_f("recallocarray keys failed");
|
||||
+ r = SSH_ERR_ALLOC_FAIL;
|
||||
goto out;
|
||||
}
|
||||
debug_f("srks[%zu]: %s %s uidlen %zu", nsrks,
|
||||
diff --git a/sshconnect2.c b/sshconnect2.c
|
||||
index a69c4da1..1ee6000a 100644
|
||||
--- a/sshconnect2.c
|
||||
+++ b/sshconnect2.c
|
||||
@@ -99,7 +99,7 @@ verify_host_key_callback(struct sshkey *hostkey, struct ssh *ssh)
|
||||
options.required_rsa_size)) != 0)
|
||||
fatal_r(r, "Bad server host key");
|
||||
if (verify_host_key(xxx_host, xxx_hostaddr, hostkey,
|
||||
- xxx_conn_info) == -1)
|
||||
+ xxx_conn_info) != 0)
|
||||
fatal("Host key verification failed.");
|
||||
return 0;
|
||||
}
|
||||
@@ -699,6 +699,7 @@ input_userauth_pk_ok(int type, u_int32_t seq, struct ssh *ssh)
|
||||
|
||||
if ((pktype = sshkey_type_from_name(pkalg)) == KEY_UNSPEC) {
|
||||
debug_f("server sent unknown pkalg %s", pkalg);
|
||||
+ r = SSH_ERR_INVALID_FORMAT;
|
||||
goto done;
|
||||
}
|
||||
if ((r = sshkey_from_blob(pkblob, blen, &key)) != 0) {
|
||||
@@ -709,6 +710,7 @@ input_userauth_pk_ok(int type, u_int32_t seq, struct ssh *ssh)
|
||||
error("input_userauth_pk_ok: type mismatch "
|
||||
"for decoded key (received %d, expected %d)",
|
||||
key->type, pktype);
|
||||
+ r = SSH_ERR_INVALID_FORMAT;
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -728,6 +730,7 @@ input_userauth_pk_ok(int type, u_int32_t seq, struct ssh *ssh)
|
||||
SSH_FP_DEFAULT);
|
||||
error_f("server replied with unknown key: %s %s",
|
||||
sshkey_type(key), fp == NULL ? "<ERROR>" : fp);
|
||||
+ r = SSH_ERR_INVALID_FORMAT;
|
||||
goto done;
|
||||
}
|
||||
ident = format_identity(id);
|
||||
diff --git a/sshsig.c b/sshsig.c
|
||||
index 6e03c0b0..3da005d6 100644
|
||||
--- a/sshsig.c
|
||||
+++ b/sshsig.c
|
||||
@@ -879,6 +879,7 @@ cert_filter_principals(const char *path, u_long linenum,
|
||||
}
|
||||
if ((principals = sshbuf_dup_string(nprincipals)) == NULL) {
|
||||
error_f("buffer error");
|
||||
+ r = SSH_ERR_ALLOC_FAIL;
|
||||
goto out;
|
||||
}
|
||||
/* success */
|
||||
Loading…
Add table
Add a link
Reference in a new issue