--- libsmb/clireadwrite.c.orig 2006-01-14 13:54:11.000000000 -0500 +++ libsmb/clireadwrite.c 2006-01-14 13:57:53.000000000 -0500 @@ -50,7 +50,7 @@ SSVAL(cli->outbuf,smb_mid,cli->mid + i); if (bigoffset) - SIVAL(cli->outbuf,smb_vwv10,(offset>>32) & 0xffffffff); + SIVAL(cli->outbuf,smb_vwv10,((SMB_BIG_UINT)offset>>32) & 0xffffffff); return cli_send_smb(cli); } @@ -303,7 +303,7 @@ smb_buf(cli->outbuf) - smb_base(cli->outbuf)); if (large_writex) - SIVAL(cli->outbuf,smb_vwv12,(offset>>32) & 0xffffffff); + SIVAL(cli->outbuf,smb_vwv12,((SMB_BIG_UINT)offset>>32) & 0xffffffff); p = smb_base(cli->outbuf) + SVAL(cli->outbuf,smb_vwv11); memcpy(p, buf, size);