diff options
author | Jeremy Allison <jra@samba.org> | 2005-04-09 00:41:38 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:56:33 -0500 |
commit | def41233b4ee342313cdcc9417dc5c04d053a18b (patch) | |
tree | ef7f85f398a4e7b09b0f35fd570ec592dfaa27e5 /source3 | |
parent | 046bea52eb0bc22ce3139fe3939c4a9536bf11fd (diff) | |
download | samba-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')
-rw-r--r-- | source3/smbd/trans2.c | 25 |
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); } /* |