summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2005-04-09 00:41:38 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:56:33 -0500
commitdef41233b4ee342313cdcc9417dc5c04d053a18b (patch)
treeef7f85f398a4e7b09b0f35fd570ec592dfaa27e5 /source3/smbd
parent046bea52eb0bc22ce3139fe3939c4a9536bf11fd (diff)
downloadsamba-def41233b4ee342313cdcc9417dc5c04d053a18b.tar.gz
samba-def41233b4ee342313cdcc9417dc5c04d053a18b.tar.bz2
samba-def41233b4ee342313cdcc9417dc5c04d053a18b.zip
r6258: Fix found by OS/2 set_ea call. When setting specific info remember to terminate
once we've done that and not "break" into the generic file metadata set code. Jeremy. (This used to be commit f1e12be9ed0ca0077bac8e5f32051758e1d84ad7)
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/trans2.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 8d673c25bd..1095e4ce75 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -3739,7 +3739,11 @@ static int call_trans2setfilepathinfo(connection_struct *conn, char *inbuf, char
if (!NT_STATUS_IS_OK(status)) {
return ERROR_NT(status);
}
- break;
+
+ /* We're done. We only get EA info in this call. */
+ SSVAL(params,0,0);
+ send_trans2_replies(outbuf, bufsize, params, 2, *ppdata, 0);
+ return(-1);
}
#if 0
@@ -3929,7 +3933,9 @@ static int call_trans2setfilepathinfo(connection_struct *conn, char *inbuf, char
return ERROR_NT(status);
}
- break;
+ SSVAL(params,0,0);
+ send_trans2_replies(outbuf, bufsize, params, 2, *ppdata, 0);
+ return(-1);
}
case SMB_FILE_POSITION_INFORMATION:
@@ -3949,9 +3955,14 @@ static int call_trans2setfilepathinfo(connection_struct *conn, char *inbuf, char
#endif /* LARGE_SMB_OFF_T */
DEBUG(10,("call_trans2setfilepathinfo: Set file position information for file %s to %.0f\n",
fname, (double)position_information ));
- if (fsp)
+ if (fsp) {
fsp->position_information = position_information;
- break;
+ }
+
+ /* We're done. We only get position info in this call. */
+ SSVAL(params,0,0);
+ send_trans2_replies(outbuf, bufsize, params, 2, *ppdata, 0);
+ return(-1);
}
/* From tridge Samba4 :
@@ -3971,7 +3982,11 @@ static int call_trans2setfilepathinfo(connection_struct *conn, char *inbuf, char
if (mode != 0 && mode != 2 && mode != 4 && mode != 6) {
return ERROR_NT(NT_STATUS_INVALID_PARAMETER);
}
- break;
+
+ /* We're done. We only get mode info in this call. */
+ SSVAL(params,0,0);
+ send_trans2_replies(outbuf, bufsize, params, 2, *ppdata, 0);
+ return(-1);
}
/*