1
0
mirror of https://github.com/libssh2/libssh2.git synced 2025-10-23 03:48:32 +03:00

Fix sftp_symlink when getting SSH_FXP_STATUS response (#1731)

Move advancing past packet ID before reading the FXP_STATUS response.
This commit is contained in:
Will Cosgrove
2025-10-20 14:04:52 -07:00
committed by GitHub
parent 8dd9da3261
commit 4ed26f5740

View File

@@ -4006,6 +4006,13 @@ static int sftp_symlink(LIBSSH2_SFTP *sftp, const char *path,
"SFTP Protocol Error (type)");
}
/* advance past id */
if(_libssh2_get_u32(&buf, &tmp_u32)) {
LIBSSH2_FREE(session, data);
return _libssh2_error(session, LIBSSH2_ERROR_SFTP_PROTOCOL,
"SFTP Protocol Error (id)");
}
if(packet_type == SSH_FXP_STATUS) {
if(_libssh2_get_u32(&buf, &tmp_u32)) {
LIBSSH2_FREE(session, data);
@@ -4025,13 +4032,6 @@ static int sftp_symlink(LIBSSH2_SFTP *sftp, const char *path,
}
}
/* advance past id */
if(_libssh2_get_u32(&buf, &tmp_u32)) {
LIBSSH2_FREE(session, data);
return _libssh2_error(session, LIBSSH2_ERROR_SFTP_PROTOCOL,
"SFTP Protocol Error (id)");
}
/* look for at least one link */
if(_libssh2_get_u32(&buf, &tmp_u32) || tmp_u32 < 1) {
LIBSSH2_FREE(session, data);