diff options
author | Steve Holme <steve_holme@hotmail.com> | 2014-12-31 16:07:32 +0000 |
---|---|---|
committer | Steve Holme <steve_holme@hotmail.com> | 2014-12-31 16:52:12 +0000 |
commit | 0df2ed85fd3de5e047166a6142e7bd4a8705d641 (patch) | |
tree | c94b2a5be81e0f731161a7b42569d97bba685389 | |
parent | 5eae12fc804c677bc413a49c7bddaff30d249c9e (diff) |
smb: Use endian functions for reading length and offset values
-rw-r--r-- | lib/smb.c | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -45,6 +45,7 @@ #include "curl_ntlm_core.h" #include "curl_memory.h" #include "escape.h" +#include "curl_endian.h" /* The last #include file should be: */ #include "memdebug.h" @@ -776,10 +777,8 @@ static CURLcode smb_request_state(struct connectdata *conn, bool *done) next_state = SMB_CLOSE; break; } - len = smb_swap16(*(unsigned short *)((char *)msg + - sizeof(struct smb_header) + 11)); - off = smb_swap16(*(unsigned short *)((char *)msg + - sizeof(struct smb_header) + 13)); + len = Curl_read16_le(((char *) msg) + sizeof(struct smb_header) + 11); + off = Curl_read16_le(((char *) msg) + sizeof(struct smb_header) + 13); if(len > 0) { result = Curl_client_write(conn, CLIENTWRITE_BODY, (char *)msg + off + sizeof(unsigned int), @@ -802,8 +801,7 @@ static CURLcode smb_request_state(struct connectdata *conn, bool *done) next_state = SMB_CLOSE; break; } - len = smb_swap16(*(unsigned short *)((char *)msg + - sizeof(struct smb_header) + 5)); + len = Curl_read16_le(((char *) msg) + sizeof(struct smb_header) + 5); conn->data->req.bytecount += len; conn->data->req.offset += len; Curl_pgrsSetUploadCounter(conn->data, conn->data->req.bytecount); |