summaryrefslogtreecommitdiff
path: root/source3/smbd/trans2.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2003-03-16 13:21:12 +0000
committerAndrew Bartlett <abartlet@samba.org>2003-03-16 13:21:12 +0000
commit400bb4bfab01a6c262b15658dee5c0d011d0e883 (patch)
tree9b75d0e768fe99a3e677538dcef7f951460aba38 /source3/smbd/trans2.c
parent644ab8e9b13970f6c6ea7f89760a01484b591172 (diff)
downloadsamba-400bb4bfab01a6c262b15658dee5c0d011d0e883.tar.gz
samba-400bb4bfab01a6c262b15658dee5c0d011d0e883.tar.bz2
samba-400bb4bfab01a6c262b15658dee5c0d011d0e883.zip
- Make ReadDirName return a const char*.
- Consequential changes from that - mark our fstring/pstring assumptions in function prototypes Andrew Bartlett (This used to be commit fe2bc64bc439b27387b8f326b0f4f3bfcc3d04a1)
Diffstat (limited to 'source3/smbd/trans2.c')
-rw-r--r--source3/smbd/trans2.c53
1 files changed, 30 insertions, 23 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index bea09e9e37..4129852f77 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -460,7 +460,7 @@ static BOOL get_lanman2_dir_entry(connection_struct *conn,
BOOL *out_of_space, BOOL *got_exact_match,
int *last_name_off)
{
- char *dname;
+ const char *dname;
BOOL found = False;
SMB_STRUCT_STAT sbuf;
pstring mask;
@@ -1173,7 +1173,8 @@ resume_key = %d resume name = %s continue=%d level = %d\n",
*/
int current_pos, start_pos;
- char *dname = NULL;
+ const char *dname = NULL;
+ pstring dname_pstring;
void *dirptr = conn->dirptr;
start_pos = TellDir(dirptr);
for(current_pos = start_pos; current_pos >= 0; current_pos--) {
@@ -1181,21 +1182,24 @@ resume_key = %d resume name = %s continue=%d level = %d\n",
SeekDir(dirptr, current_pos);
dname = ReadDirName(dirptr);
+ if (dname) {
+ /*
+ * Remember, mangle_map is called by
+ * get_lanman2_dir_entry(), so the resume name
+ * could be mangled. Ensure we do the same
+ * here.
+ */
+
+ /* make sure we get a copy that mangle_map can modify */
- /*
- * Remember, mangle_map is called by
- * get_lanman2_dir_entry(), so the resume name
- * could be mangled. Ensure we do the same
- * here.
- */
-
- if(dname != NULL)
- mangle_map( dname, False, True, SNUM(conn));
-
- if(dname && strcsequal( resume_name, dname)) {
- SeekDir(dirptr, current_pos+1);
- DEBUG(7,("call_trans2findnext: got match at pos %d\n", current_pos+1 ));
- break;
+ pstrcpy(dname_pstring, dname);
+ mangle_map( dname_pstring, False, True, SNUM(conn));
+
+ if(strcsequal( resume_name, dname_pstring)) {
+ SeekDir(dirptr, current_pos+1);
+ DEBUG(7,("call_trans2findnext: got match at pos %d\n", current_pos+1 ));
+ break;
+ }
}
}
@@ -1215,13 +1219,17 @@ resume_key = %d resume name = %s continue=%d level = %d\n",
* here.
*/
- if(dname != NULL)
- mangle_map( dname, False, True, SNUM(conn));
+ if(dname) {
+ /* make sure we get a copy that mangle_map can modify */
+
+ pstrcpy(dname_pstring, dname);
+ mangle_map(dname_pstring, False, True, SNUM(conn));
- if(dname && strcsequal( resume_name, dname)) {
- SeekDir(dirptr, current_pos+1);
- DEBUG(7,("call_trans2findnext: got match at pos %d\n", current_pos+1 ));
- break;
+ if(strcsequal( resume_name, dname_pstring)) {
+ SeekDir(dirptr, current_pos+1);
+ DEBUG(7,("call_trans2findnext: got match at pos %d\n", current_pos+1 ));
+ break;
+ }
}
} /* end for */
} /* end if current_pos */
@@ -1269,7 +1277,6 @@ resume_key = %d resume name = %s continue=%d level = %d\n",
dptr_close(&dptr_num); /* This frees up the saved mask */
}
-
/* Set up the return parameter block */
SSVAL(params,0,numentries);
SSVAL(params,2,finished);