diff options
author | Jeremy Allison <jra@samba.org> | 2005-02-01 02:06:00 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2005-02-01 02:06:00 +0000 |
commit | e3b94dcc9518f504d35d9088f8beda51d8d1111b (patch) | |
tree | 388fd22c7428c5c0ead1c197cfa85186459dbefd | |
parent | 48422f649b9db84e45e8d25d1c18ffcb6cebf29f (diff) | |
download | samba-e3b94dcc9518f504d35d9088f8beda51d8d1111b.tar.gz samba-e3b94dcc9518f504d35d9088f8beda51d8d1111b.tar.xz samba-e3b94dcc9518f504d35d9088f8beda51d8d1111b.zip |
r5154: Tidy up interface a little.
Jeremy.
-rw-r--r-- | source/smbd/dir.c | 6 | ||||
-rw-r--r-- | source/smbd/reply.c | 5 | ||||
-rw-r--r-- | source/smbd/trans2.c | 4 |
3 files changed, 9 insertions, 6 deletions
diff --git a/source/smbd/dir.c b/source/smbd/dir.c index 7f1237cb29c..29ef4cbe61b 100644 --- a/source/smbd/dir.c +++ b/source/smbd/dir.c @@ -196,13 +196,15 @@ uint16 dptr_attr(int key) Returns 0 on ok, 1 on fail. ****************************************************************************/ -BOOL dptr_set_wcard_and_attributes(int key, char *wcard, uint16 attr) +BOOL dptr_set_wcard_and_attributes(int key, const char *wcard, uint16 attr) { struct dptr_struct *dptr = dptr_get(key, False); if (dptr) { dptr->attr = attr; - dptr->wcard = wcard; + dptr->wcard = SMB_STRDUP(wcard); + if (!dptr->wcard) + return False; dptr->has_wild = ms_has_wild(wcard); return True; } diff --git a/source/smbd/reply.c b/source/smbd/reply.c index c9e35e6a6a8..899dba56d86 100644 --- a/source/smbd/reply.c +++ b/source/smbd/reply.c @@ -899,7 +899,10 @@ int reply_search(connection_struct *conn, char *inbuf,char *outbuf, int dum_size END_PROFILE(SMBsearch); return ERROR_DOS(ERRDOS,ERRnofids); } - dptr_set_wcard_and_attributes(dptr_num, SMB_STRDUP(mask), dirtype); + if (!dptr_set_wcard_and_attributes(dptr_num, mask, dirtype)) { + END_PROFILE(SMBsearch); + return ERROR_DOS(ERRDOS,ERRnomem); + } } else { dirtype = dptr_attr(dptr_num); } diff --git a/source/smbd/trans2.c b/source/smbd/trans2.c index 11c21650d42..d2cef6049de 100644 --- a/source/smbd/trans2.c +++ b/source/smbd/trans2.c @@ -1437,13 +1437,11 @@ close_if_end = %d requires_resume_key = %d level = 0x%x, max_data_bytes = %d\n", /* Save the wildcard match and attribs we are using on this directory - needed as lanman2 assumes these are being saved between calls */ - if(!(wcard = SMB_STRDUP(mask))) { + if (!dptr_set_wcard_and_attributes(dptr_num, mask, dirtype)) { dptr_close(&dptr_num); return ERROR_DOS(ERRDOS,ERRnomem); } - dptr_set_wcard_and_attributes(dptr_num, wcard, dirtype); - DEBUG(4,("dptr_num is %d, wcard = %s, attr = %d\n",dptr_num, wcard, dirtype)); /* We don't need to check for VOL here as this is returned by |