libssh: error on bad chgrp number

To avoid it continuing with a zero gid.

Reported in Joshua's sarif data

Closes #18629
This commit is contained in:
Daniel Stenberg 2025-09-20 11:25:38 +02:00
parent 7a26304a95
commit 335d16e944
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2

View file

@ -1808,10 +1808,7 @@ static int myssh_in_SFTP_QUOTE_STAT(struct Curl_easy *data,
if(!strncmp(cmd, "chgrp", 5)) {
const char *p = sshc->quote_path1;
curl_off_t gid;
(void)curlx_str_number(&p, &gid, UINT_MAX);
sshc->quote_attrs->gid = (uint32_t)gid;
if(sshc->quote_attrs->gid == 0 && !ISDIGIT(sshc->quote_path1[0]) &&
!sshc->acceptfail) {
if(curlx_str_number(&p, &gid, UINT_MAX)) {
Curl_safefree(sshc->quote_path1);
Curl_safefree(sshc->quote_path2);
failf(data, "Syntax error: chgrp gid not a number");
@ -1820,6 +1817,7 @@ static int myssh_in_SFTP_QUOTE_STAT(struct Curl_easy *data,
sshc->actualcode = CURLE_QUOTE_ERROR;
return SSH_NO_ERROR;
}
sshc->quote_attrs->gid = (uint32_t)gid;
sshc->quote_attrs->flags |= SSH_FILEXFER_ATTR_UIDGID;
}
else if(!strncmp(cmd, "chmod", 5)) {