From c049c37acd074a61bbd07eebe25fdf32af575a2a Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 9 Oct 2025 23:21:37 +0200 Subject: [PATCH] libssh: make atime and mtime cap the timestamp instead of wrap The libssh API uses a 32 bit type for datestamp, so instead of just force-typecast it, make sure it gets capped at UINT_MAX if the value is larger. Reported-by: Joshua Rogers Closes #18989 --- lib/vssh/libssh.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c index 579eaeaa0d..544e682b77 100644 --- a/lib/vssh/libssh.c +++ b/lib/vssh/libssh.c @@ -1864,6 +1864,9 @@ static int myssh_in_SFTP_QUOTE_STAT(struct Curl_easy *data, sshc->actualcode = CURLE_QUOTE_ERROR; return SSH_NO_ERROR; } + if(date > UINT_MAX) + /* because the liubssh API can't deal with a larger value */ + date = UINT_MAX; if(!strncmp(cmd, "atime", 5)) sshc->quote_attrs->atime = (uint32_t)date; else /* mtime */