mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 01:48:00 +00:00
Fix type mismatch in sftp_find_request
The id member of the sftp_request structure is of type unsigned int. This type is also used in the sftp_reqfind callback. In sftp_find_request we thus need to pass a pointer to unsigned int to find234. Before this commit, sftp_find_request was passing a pointer to unsigned long to find234, which causes the lookup to fail on big-endian platforms where sizeof(unsigned int) != sizeof(unsigned long), e.g. ppc64.
This commit is contained in:
parent
fa91b55eec
commit
09b74971c7
4
sftp.c
4
sftp.c
@ -352,6 +352,7 @@ void sftp_register(struct sftp_request *req)
|
|||||||
struct sftp_request *sftp_find_request(struct sftp_packet *pktin)
|
struct sftp_request *sftp_find_request(struct sftp_packet *pktin)
|
||||||
{
|
{
|
||||||
unsigned long id;
|
unsigned long id;
|
||||||
|
unsigned fid;
|
||||||
struct sftp_request *req;
|
struct sftp_request *req;
|
||||||
|
|
||||||
if (!pktin) {
|
if (!pktin) {
|
||||||
@ -363,7 +364,8 @@ struct sftp_request *sftp_find_request(struct sftp_packet *pktin)
|
|||||||
fxp_internal_error("did not receive a valid SFTP packet\n");
|
fxp_internal_error("did not receive a valid SFTP packet\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
req = find234(sftp_requests, &id, sftp_reqfind);
|
fid = (unsigned)id;
|
||||||
|
req = find234(sftp_requests, &fid, sftp_reqfind);
|
||||||
|
|
||||||
if (!req || !req->registered) {
|
if (!req || !req->registered) {
|
||||||
fxp_internal_error("request ID mismatch\n");
|
fxp_internal_error("request ID mismatch\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user