Author: jra Date: 2007-02-08 00:41:57 +0000 (Thu, 08 Feb 2007) New Revision: 21229
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21229 Log: Don't indirect through a potentially null pointer :-). Jeremy. Modified: branches/SAMBA_3_0/source/smbd/trans2.c branches/SAMBA_3_0_25/source/smbd/trans2.c Changeset: Modified: branches/SAMBA_3_0/source/smbd/trans2.c =================================================================== --- branches/SAMBA_3_0/source/smbd/trans2.c 2007-02-08 00:28:25 UTC (rev 21228) +++ branches/SAMBA_3_0/source/smbd/trans2.c 2007-02-08 00:41:57 UTC (rev 21229) @@ -2868,7 +2868,8 @@ Store the FILE_UNIX_BASIC info. ****************************************************************************/ -static char *store_file_unix_basic(char *pdata, +static char *store_file_unix_basic(connection_struct *conn, + char *pdata, files_struct *fsp, SMB_STRUCT_STAT *psbuf) { @@ -2878,7 +2879,7 @@ SOFF_T(pdata,0,get_file_size(*psbuf)); /* File size 64 Bit */ pdata += 8; - SOFF_T(pdata,0,get_allocation_size(fsp->conn,fsp,psbuf)); /* Number of bytes used on disk - 64 Bit */ + SOFF_T(pdata,0,get_allocation_size(conn,fsp,psbuf)); /* Number of bytes used on disk - 64 Bit */ pdata += 8; put_long_date_timespec(pdata,get_ctimespec(psbuf)); /* Creation Time 64 Bit */ @@ -3524,7 +3525,7 @@ case SMB_QUERY_FILE_UNIX_BASIC: - pdata = store_file_unix_basic(pdata, fsp, &sbuf); + pdata = store_file_unix_basic(conn, pdata, fsp, &sbuf); data_size = PTR_DIFF(pdata,(*ppdata)); { @@ -4932,7 +4933,7 @@ if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) { SSVAL(pdata,4,SMB_QUERY_FILE_UNIX_BASIC); SSVAL(pdata,6,0); /* Padding. */ - store_file_unix_basic(pdata + 8, fsp, psbuf); + store_file_unix_basic(conn, pdata + 8, fsp, psbuf); } else { SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED); SSVAL(pdata,6,0); /* Padding. */ @@ -5098,7 +5099,7 @@ if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) { SSVAL(pdata,4,SMB_QUERY_FILE_UNIX_BASIC); SSVAL(pdata,6,0); /* padding. */ - store_file_unix_basic(pdata + 8, fsp, psbuf); + store_file_unix_basic(conn, pdata + 8, fsp, psbuf); } else { SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED); SSVAL(pdata,6,0); /* padding. */ Modified: branches/SAMBA_3_0_25/source/smbd/trans2.c =================================================================== --- branches/SAMBA_3_0_25/source/smbd/trans2.c 2007-02-08 00:28:25 UTC (rev 21228) +++ branches/SAMBA_3_0_25/source/smbd/trans2.c 2007-02-08 00:41:57 UTC (rev 21229) @@ -2868,7 +2868,8 @@ Store the FILE_UNIX_BASIC info. ****************************************************************************/ -static char *store_file_unix_basic(char *pdata, +static char *store_file_unix_basic(connection_struct *conn, + char *pdata, files_struct *fsp, SMB_STRUCT_STAT *psbuf) { @@ -2878,7 +2879,7 @@ SOFF_T(pdata,0,get_file_size(*psbuf)); /* File size 64 Bit */ pdata += 8; - SOFF_T(pdata,0,get_allocation_size(fsp->conn,fsp,psbuf)); /* Number of bytes used on disk - 64 Bit */ + SOFF_T(pdata,0,get_allocation_size(conn,fsp,psbuf)); /* Number of bytes used on disk - 64 Bit */ pdata += 8; put_long_date_timespec(pdata,get_ctimespec(psbuf)); /* Creation Time 64 Bit */ @@ -3524,7 +3525,7 @@ case SMB_QUERY_FILE_UNIX_BASIC: - pdata = store_file_unix_basic(pdata, fsp, &sbuf); + pdata = store_file_unix_basic(conn, pdata, fsp, &sbuf); data_size = PTR_DIFF(pdata,(*ppdata)); { @@ -4926,7 +4927,7 @@ if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) { SSVAL(pdata,4,SMB_QUERY_FILE_UNIX_BASIC); SSVAL(pdata,6,0); /* Padding. */ - store_file_unix_basic(pdata + 8, fsp, psbuf); + store_file_unix_basic(conn, pdata + 8, fsp, psbuf); } else { SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED); SSVAL(pdata,6,0); /* Padding. */ @@ -5092,7 +5093,7 @@ if (info_level_return == SMB_QUERY_FILE_UNIX_BASIC) { SSVAL(pdata,4,SMB_QUERY_FILE_UNIX_BASIC); SSVAL(pdata,6,0); /* padding. */ - store_file_unix_basic(pdata + 8, fsp, psbuf); + store_file_unix_basic(conn, pdata + 8, fsp, psbuf); } else { SSVAL(pdata,4,SMB_NO_INFO_LEVEL_RETURNED); SSVAL(pdata,6,0); /* padding. */