summaryrefslogtreecommitdiff
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
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)
-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);
}
/*