summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2005-02-01 02:06:00 +0000
committerJeremy Allison <jra@samba.org>2005-02-01 02:06:00 +0000
commite3b94dcc9518f504d35d9088f8beda51d8d1111b (patch)
tree388fd22c7428c5c0ead1c197cfa85186459dbefd
parent48422f649b9db84e45e8d25d1c18ffcb6cebf29f (diff)
downloadsamba-e3b94dcc9518f504d35d9088f8beda51d8d1111b.tar.gz
samba-e3b94dcc9518f504d35d9088f8beda51d8d1111b.tar.xz
samba-e3b94dcc9518f504d35d9088f8beda51d8d1111b.zip
r5154: Tidy up interface a little.
Jeremy.
-rw-r--r--source/smbd/dir.c6
-rw-r--r--source/smbd/reply.c5
-rw-r--r--source/smbd/trans2.c4
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