1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-08-10 06:23:01 +03:00

misc: Fix format truncation in ssh_path_expand_escape()

error: ‘%u’ directive output may be truncated writing between 1 and 10
bytes into a region of size 6.

Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Reviewed-by: Jakub Jelen <jjelen@redhat.com>
(cherry picked from commit 20406e51c9)

Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Andreas Schneider
2022-08-26 13:07:28 +02:00
committed by Jakub Jelen
parent ea075e3f2e
commit fd1add66cf
2 changed files with 7 additions and 8 deletions

View File

@@ -219,7 +219,7 @@ struct ssh_session_struct {
char *custombanner; char *custombanner;
unsigned long timeout; /* seconds */ unsigned long timeout; /* seconds */
unsigned long timeout_usec; unsigned long timeout_usec;
unsigned int port; uint16_t port;
socket_t fd; socket_t fd;
int StrictHostKeyChecking; int StrictHostKeyChecking;
char compressionlevel; char compressionlevel;

View File

@@ -1164,13 +1164,12 @@ char *ssh_path_expand_escape(ssh_session session, const char *s) {
x = strdup(session->opts.username); x = strdup(session->opts.username);
break; break;
case 'p': case 'p':
if (session->opts.port < 65536) { if (session->opts.port > 0) {
char tmp[6]; char tmp[6];
snprintf(tmp, snprintf(tmp, sizeof(tmp), "%hu",
sizeof(tmp), (uint16_t)(session->opts.port > 0 ? session->opts.port
"%u", : 22));
session->opts.port > 0 ? session->opts.port : 22);
x = strdup(tmp); x = strdup(tmp);
} }
break; break;