svn commit: samba r24102 - in branches/SAMBA_3_2/source/smbd: .
vlendec at samba.org
vlendec at samba.org
Tue Jul 31 12:05:43 GMT 2007
Author: vlendec
Date: 2007-07-31 12:05:40 +0000 (Tue, 31 Jul 2007)
New Revision: 24102
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24102
Log:
Pass the fid instead of inbuf and an offset to file_fsp.
This removes the buf==NULL condition in file_fsp(), but wherever it is called
we do have a buffer anyway.
Volker
Modified:
branches/SAMBA_3_2/source/smbd/files.c
branches/SAMBA_3_2/source/smbd/nttrans.c
branches/SAMBA_3_2/source/smbd/reply.c
branches/SAMBA_3_2/source/smbd/trans2.c
Changeset:
Modified: branches/SAMBA_3_2/source/smbd/files.c
===================================================================
--- branches/SAMBA_3_2/source/smbd/files.c 2007-07-31 11:26:24 UTC (rev 24101)
+++ branches/SAMBA_3_2/source/smbd/files.c 2007-07-31 12:05:40 UTC (rev 24102)
@@ -487,7 +487,7 @@
Get an fsp from a packet given the offset of a 16 bit fnum.
****************************************************************************/
-files_struct *file_fsp(const char *buf, int where)
+files_struct *file_fsp(uint16 fid)
{
files_struct *fsp;
@@ -495,11 +495,7 @@
return chain_fsp;
}
- if (!buf) {
- return NULL;
- }
-
- fsp = file_fnum(SVAL(buf, where));
+ fsp = file_fnum(fid);
if (fsp) {
chain_fsp = fsp;
}
Modified: branches/SAMBA_3_2/source/smbd/nttrans.c
===================================================================
--- branches/SAMBA_3_2/source/smbd/nttrans.c 2007-07-31 11:26:24 UTC (rev 24101)
+++ branches/SAMBA_3_2/source/smbd/nttrans.c 2007-07-31 12:05:40 UTC (rev 24102)
@@ -619,7 +619,7 @@
*/
pstring rel_fname;
files_struct *dir_fsp = file_fsp(
- (char *)req->inbuf, smb_ntcreate_RootDirectoryFid);
+ SVAL(req->inbuf, smb_ntcreate_RootDirectoryFid));
size_t dir_name_len;
if(!dir_fsp) {
@@ -1377,7 +1377,7 @@
/*
* This filename is relative to a directory fid.
*/
- files_struct *dir_fsp = file_fsp(params,4);
+ files_struct *dir_fsp = file_fsp(SVAL(params,4));
size_t dir_name_len;
if(!dir_fsp) {
@@ -2078,7 +2078,7 @@
return ERROR_DOS(ERRDOS,ERRbadfunc);
}
- fsp = file_fsp((char *)setup,4);
+ fsp = file_fsp(SVAL(setup,4));
filter = IVAL(setup, 0);
recursive = (SVAL(setup, 6) != 0) ? True : False;
@@ -2173,7 +2173,7 @@
return ERROR_DOS(ERRDOS,ERRbadfunc);
}
- fsp = file_fsp(params, 0);
+ fsp = file_fsp(SVAL(params, 0));
replace_if_exists = (SVAL(params,2) & RENAME_REPLACE_IF_EXISTS) ? True : False;
CHECK_FSP(fsp, conn);
srvstr_get_path_wcard(inbuf, SVAL(inbuf,smb_flg2), new_name, params+4,
@@ -2244,7 +2244,7 @@
return ERROR_DOS(ERRDOS,ERRbadfunc);
}
- fsp = file_fsp(params,0);
+ fsp = file_fsp(SVAL(params,0));
if(!fsp) {
return ERROR_DOS(ERRDOS,ERRbadfid);
}
@@ -2358,7 +2358,7 @@
return ERROR_DOS(ERRDOS,ERRbadfunc);
}
- if((fsp = file_fsp(params,0)) == NULL) {
+ if((fsp = file_fsp(SVAL(params,0))) == NULL) {
return ERROR_DOS(ERRDOS,ERRbadfid);
}
@@ -2415,7 +2415,7 @@
DEBUG(10,("call_nt_transact_ioctl: function[0x%08X] FID[0x%04X] isFSctl[0x%02X] compfilter[0x%02X]\n",
function, fidnum, isFSctl, compfilter));
- fsp=file_fsp((char *)*ppsetup, 4);
+ fsp=file_fsp(SVAL(ppsetup, 4));
/* this check is done in each implemented function case for now
because I don't want to break anything... --metze
FSP_BELONGS_CONN(fsp,conn);*/
@@ -2693,7 +2693,7 @@
}
/* maybe we can check the quota_fnum */
- fsp = file_fsp(params,0);
+ fsp = file_fsp(SVAL(params,0));
if (!CHECK_NTQUOTA_HANDLE_OK(fsp,conn)) {
DEBUG(3,("TRANSACT_GET_USER_QUOTA: no valid QUOTA HANDLE\n"));
return ERROR_NT(NT_STATUS_INVALID_HANDLE);
@@ -2941,7 +2941,7 @@
}
/* maybe we can check the quota_fnum */
- fsp = file_fsp(params,0);
+ fsp = file_fsp(SVAL(params,0));
if (!CHECK_NTQUOTA_HANDLE_OK(fsp,conn)) {
DEBUG(3,("TRANSACT_GET_USER_QUOTA: no valid QUOTA HANDLE\n"));
return ERROR_NT(NT_STATUS_INVALID_HANDLE);
Modified: branches/SAMBA_3_2/source/smbd/reply.c
===================================================================
--- branches/SAMBA_3_2/source/smbd/reply.c 2007-07-31 11:26:24 UTC (rev 24101)
+++ branches/SAMBA_3_2/source/smbd/reply.c 2007-07-31 12:05:40 UTC (rev 24102)
@@ -709,7 +709,7 @@
switch (ioctl_code) {
case IOCTL_QUERY_JOB_INFO:
{
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
if (!fsp) {
END_PROFILE(SMBioctl);
return(UNIXERROR(ERRDOS,ERRbadfid));
@@ -2433,7 +2433,7 @@
* return a zero length response here.
*/
- fsp = file_fsp(inbuf,smb_vwv0);
+ fsp = file_fsp(SVAL(inbuf,smb_vwv0));
if (!FNUM_OK(fsp,conn) || !fsp->can_read) {
/*
@@ -2538,7 +2538,7 @@
SMB_OFF_T startpos;
size_t numtoread;
NTSTATUS status;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
struct byte_range_lock *br_lck = NULL;
START_PROFILE(SMBlockread);
@@ -2624,7 +2624,7 @@
char *data;
SMB_OFF_T startpos;
int outsize = 0;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
START_PROFILE(SMBread);
CHECK_FSP(fsp,conn);
@@ -2827,7 +2827,7 @@
int reply_read_and_X(connection_struct *conn, char *inbuf,char *outbuf,int length,int bufsize)
{
- files_struct *fsp = file_fsp(inbuf,smb_vwv2);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv2));
SMB_OFF_T startpos = IVAL_TO_SMB_OFF_T(inbuf,smb_vwv3);
ssize_t nread = -1;
size_t smb_maxcnt = SVAL(inbuf,smb_vwv5);
@@ -2928,7 +2928,7 @@
SMB_OFF_T startpos;
char *data=NULL;
BOOL write_through;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
int outsize = 0;
NTSTATUS status;
START_PROFILE(SMBwritebraw);
@@ -3079,7 +3079,7 @@
SMB_OFF_T startpos;
char *data;
NTSTATUS status = NT_STATUS_OK;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
int outsize = 0;
START_PROFILE(SMBwriteunlock);
@@ -3157,7 +3157,7 @@
ssize_t nwritten = -1;
SMB_OFF_T startpos;
char *data;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
int outsize = 0;
NTSTATUS status;
START_PROFILE(SMBwrite);
@@ -3240,7 +3240,7 @@
int reply_write_and_X(connection_struct *conn, char *inbuf,char *outbuf,int length,int bufsize)
{
- files_struct *fsp = file_fsp(inbuf,smb_vwv2);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv2));
SMB_OFF_T startpos = IVAL_TO_SMB_OFF_T(inbuf,smb_vwv3);
size_t numtowrite = SVAL(inbuf,smb_vwv10);
BOOL write_through = BITSETW(inbuf+smb_vwv7,0);
@@ -3362,7 +3362,7 @@
SMB_OFF_T res= -1;
int mode,umode;
int outsize = 0;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
START_PROFILE(SMBlseek);
CHECK_FSP(fsp,conn);
@@ -3434,7 +3434,7 @@
{
int outsize = set_message(inbuf,outbuf,0,0,False);
uint16 fnum = SVAL(inbuf,smb_vwv0);
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
START_PROFILE(SMBflush);
if (fnum != 0xFFFF)
@@ -3501,7 +3501,7 @@
return;
}
- fsp = file_fsp((char *)req->inbuf,smb_vwv0);
+ fsp = file_fsp(SVAL(req->inbuf,smb_vwv0));
/*
* We can only use CHECK_FSP if we know it's not a directory.
@@ -3570,7 +3570,7 @@
SMB_OFF_T startpos;
char *data;
struct timespec mtime;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
START_PROFILE(SMBwriteclose);
CHECK_FSP(fsp,conn);
@@ -3637,7 +3637,7 @@
int outsize = set_message(inbuf,outbuf,0,0,False);
SMB_BIG_UINT count,offset;
NTSTATUS status;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
struct byte_range_lock *br_lck = NULL;
START_PROFILE(SMBlock);
@@ -3684,7 +3684,7 @@
int outsize = set_message(inbuf,outbuf,0,0,False);
SMB_BIG_UINT count,offset;
NTSTATUS status;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
START_PROFILE(SMBunlock);
CHECK_FSP(fsp,conn);
@@ -3830,7 +3830,7 @@
char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
{
int outsize = set_message(inbuf,outbuf,0,0,False);
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
NTSTATUS status;
START_PROFILE(SMBsplclose);
@@ -3935,7 +3935,7 @@
int numtowrite;
int outsize = set_message(inbuf,outbuf,0,0,False);
char *data;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
START_PROFILE(SMBsplwr);
@@ -5533,7 +5533,7 @@
int reply_lockingX(connection_struct *conn, char *inbuf, char *outbuf,
int length, int bufsize)
{
- files_struct *fsp = file_fsp(inbuf,smb_vwv2);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv2));
unsigned char locktype = CVAL(inbuf,smb_vwv3);
unsigned char oplocklevel = CVAL(inbuf,smb_vwv3+1);
uint16 num_ulocks = SVAL(inbuf,smb_vwv6);
@@ -5860,7 +5860,7 @@
int max_per_packet;
size_t tcount;
int pad;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
START_PROFILE(SMBreadBmpx);
/* this function doesn't seem to work - disable by default */
@@ -5931,7 +5931,7 @@
{
struct timespec ts[2];
int outsize = 0;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
START_PROFILE(SMBsetattrE);
outsize = set_message(inbuf,outbuf,0,0,False);
@@ -6000,7 +6000,7 @@
BOOL write_through;
int smb_doff;
char *data;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
NTSTATUS status;
START_PROFILE(SMBwriteBmpx);
@@ -6112,7 +6112,7 @@
char *data;
write_bmpx_struct *wbms;
BOOL send_response = False;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
NTSTATUS status;
START_PROFILE(SMBwriteBs);
@@ -6201,7 +6201,7 @@
SMB_STRUCT_STAT sbuf;
int outsize = 0;
int mode;
- files_struct *fsp = file_fsp(inbuf,smb_vwv0);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv0));
START_PROFILE(SMBgetattrE);
outsize = set_message(inbuf,outbuf,11,0,True);
Modified: branches/SAMBA_3_2/source/smbd/trans2.c
===================================================================
--- branches/SAMBA_3_2/source/smbd/trans2.c 2007-07-31 11:26:24 UTC (rev 24101)
+++ branches/SAMBA_3_2/source/smbd/trans2.c 2007-07-31 12:05:40 UTC (rev 24102)
@@ -2859,7 +2859,7 @@
* but we didn't use the last 6 bytes for now
* --metze
*/
- fsp = file_fsp(params,0);
+ fsp = file_fsp(SVAL(params,0));
if (!CHECK_NTQUOTA_HANDLE_OK(fsp,conn)) {
DEBUG(3,("TRANSACT_GET_USER_QUOTA: no valid QUOTA HANDLE\n"));
return ERROR_NT(NT_STATUS_INVALID_HANDLE);
@@ -3341,7 +3341,7 @@
max_data_bytes);
}
- fsp = file_fsp(params,0);
+ fsp = file_fsp(SVAL(params,0));
info_level = SVAL(params,2);
DEBUG(3,("call_trans2qfilepathinfo: TRANSACT2_QFILEINFO: level = %d\n", info_level));
@@ -5860,7 +5860,7 @@
return ERROR_NT(NT_STATUS_INVALID_PARAMETER);
}
- fsp = file_fsp(params,0);
+ fsp = file_fsp(SVAL(params,0));
info_level = SVAL(params,2);
if(fsp && (fsp->is_directory || fsp->fh->fd == -1)) {
@@ -6460,7 +6460,7 @@
unsigned int max_data_bytes)
{
char *pdata = *ppdata;
- files_struct *fsp = file_fsp(inbuf,smb_vwv15);
+ files_struct *fsp = file_fsp(SVAL(inbuf,smb_vwv15));
/* check for an invalid fid before proceeding */
More information about the samba-cvs
mailing list