summaryrefslogtreecommitdiff
path: root/source3/smbd/nttrans.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-09-11 21:42:18 +0000
committerJeremy Allison <jra@samba.org>1998-09-11 21:42:18 +0000
commit9b20e5bac2a7b83f8e3dfdf3a274a1ce12dbd92c (patch)
tree645fd7c7d70c04e88018e1c1233dc8df52989562 /source3/smbd/nttrans.c
parent27d0bef143fbc4d7547c022046c094bbdbd0bfc1 (diff)
downloadsamba-9b20e5bac2a7b83f8e3dfdf3a274a1ce12dbd92c.tar.gz
samba-9b20e5bac2a7b83f8e3dfdf3a274a1ce12dbd92c.tar.bz2
samba-9b20e5bac2a7b83f8e3dfdf3a274a1ce12dbd92c.zip
Ok so with this bugfix 64 bit file access actually seems to work :-).
Problems were just dumb bugs like (defining sys_lseek to return 'int' DOH !). Jeremy. (This used to be commit 54dd51176fbab18af0b21bdee71b53f8f86573a8)
Diffstat (limited to 'source3/smbd/nttrans.c')
-rw-r--r--source3/smbd/nttrans.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
index 81b3ff26d5..5052e6d52a 100644
--- a/source3/smbd/nttrans.c
+++ b/source3/smbd/nttrans.c
@@ -661,9 +661,16 @@ int reply_ntcreate_and_X(connection_struct *conn,
put_long_date(p,sbuf.st_mtime); /* change time */
p += 8;
SIVAL(p,0,fmode); /* File Attributes. */
- p += 12;
+ p += 4;
+#ifdef LARGE_SMB_OFF_T
+ SIVAL(p,0, file_len);
+ SIVAL(p,4, file_len >> 32);
+#else /* LARGE_SMB_OFF_T */
+ SIVAL(p,0,file_len);
+#endif /* LARGE_SMB_OFF_T */
+ p += 8;
#ifdef LARGE_SMB_OFF_T
- SIVAL(p,0, file_len & 0xFFFFFFFF);
+ SIVAL(p,0, file_len);
SIVAL(p,4, file_len >> 32);
#else /* LARGE_SMB_OFF_T */
SIVAL(p,0,file_len);
@@ -889,9 +896,16 @@ static int call_nt_transact_create(connection_struct *conn,
put_long_date(p,sbuf.st_mtime); /* change time */
p += 8;
SIVAL(p,0,fmode); /* File Attributes. */
- p += 12;
+ p += 4;
+#ifdef LARGE_SMB_OFF_T
+ SIVAL(p,0, file_len);
+ SIVAL(p,4, (file_len >> 32));
+#else /* LARGE_SMB_OFF_T */
+ SIVAL(p,0,file_len);
+#endif /* LARGE_SMB_OFF_T */
+ p += 8;
#ifdef LARGE_SMB_OFF_T
- SIVAL(p,0, file_len & 0xFFFFFFFF);
+ SIVAL(p,0, file_len);
SIVAL(p,4, (file_len >> 32));
#else /* LARGE_SMB_OFF_T */
SIVAL(p,0,file_len);