From 944aeb7de472e0654561f7d8f37a5703487a973e Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 28 Apr 2001 12:43:15 +0000 Subject: use asprintf for hideunreadable option (This used to be commit 338d5ca8addb3079e0ab4a68338596d6e3b17ddb) --- source3/smbd/dir.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'source3/smbd/dir.c') diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c index 1d497574a6..fa9cbdc4a2 100644 --- a/source3/smbd/dir.c +++ b/source3/smbd/dir.c @@ -727,21 +727,15 @@ void *OpenDir(connection_struct *conn, char *name, BOOL use_veto) if (use_veto && conn && IS_VETO_PATH(conn, n)) continue; /* Honour _hide unreadable_ option */ - if (conn && lp_hideunreadable(SNUM(conn))) - { - char *entry; - int ret; + if (conn && lp_hideunreadable(SNUM(conn))) { + char *entry; + int ret=0; - entry = (char *)malloc(PATH_MAX); - if (!entry) { - DEBUG(0,("Out of memory in OpenDir\n")); - conn->vfs_ops.closedir(conn,p); - return(NULL); - } - slprintf(entry, PATH_MAX, "%s/%s/%s", conn->origpath, name, n); - ret = user_can_read_file(conn, entry); - free(entry); - if (!ret) continue; + if (asprintf(&entry, "%s/%s/%s", conn->origpath, name, n) > 0) { + ret = user_can_read_file(conn, entry); + free(entry); + } + if (!ret) continue; } if (used + l > dirp->mallocsize) { -- cgit