From: Jeremy Allison Date: Tue, 11 Nov 2008 22:20:53 +0000 (-0800) Subject: Fix bug 5889. "delete veto files = no" seems to break. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5a58a4f2b689571c52c90d04c969fe3c56551c5c;p=thirdparty%2Fsamba.git Fix bug 5889. "delete veto files = no" seems to break. Jeremy. --- diff --git a/source/smbd/reply.c b/source/smbd/reply.c index 2d271ab59c4..7aeefea98ba 100644 --- a/source/smbd/reply.c +++ b/source/smbd/reply.c @@ -5046,8 +5046,16 @@ NTSTATUS rmdir_internals(TALLOC_CTX *ctx, } } - /* We only have veto files/directories. Recursive delete. */ + /* We only have veto files/directories. + * Are we allowed to delete them ? */ + if(!lp_recursive_veto_delete(SNUM(conn))) { + TALLOC_FREE(dir_hnd); + errno = ENOTEMPTY; + goto err; + } + + /* Do a recursive delete. */ RewindDir(dir_hnd,&dirpos); while ((dname = ReadDirName(dir_hnd,&dirpos))) { char *fullname = NULL; @@ -5073,9 +5081,8 @@ NTSTATUS rmdir_internals(TALLOC_CTX *ctx, break; } if(st.st_mode & S_IFDIR) { - if(lp_recursive_veto_delete(SNUM(conn))) { - if(!recursive_rmdir(ctx, conn, fullname)) - break; + if(!recursive_rmdir(ctx, conn, fullname)) { + break; } if(SMB_VFS_RMDIR(conn,fullname) != 0) { break;