From: Daniel Stenberg Date: Thu, 9 Oct 2025 21:21:37 +0000 (+0200) Subject: libssh: make atime and mtime cap the timestamp instead of wrap X-Git-Tag: rc-8_17_0-1~19 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c049c37acd074a61bbd07eebe25fdf32af575a2a;p=thirdparty%2Fcurl.git 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 --- 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 */