From e60c0a5bff677e0626b6992b46b5a167cf14db1e Mon Sep 17 00:00:00 2001 From: Derrell Lipman Date: Wed, 15 Aug 2007 13:44:44 +0000 Subject: r24462: - Removing all ACEs was causing removal of the DACL entirely. Win2000 ignored the request, presumably due to the PROTECTED flag not being set. Setting that flag (in make_sec_desc()) has much wider implications than just to libsmbclient, so instead of modifying that, we'll remove security descriptors by setting the number of ACEs to zero. At some point, we might want to look into whether we should actually be setting the PROTECTED flag in the DACL. Reference http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/distrib/dsce_ctl_qxju.mspx?mfr=true Derrell (This used to be commit 319df380e579fd860348a8f08a584e13161dde9d) --- source3/libsmb/libsmbclient.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'source3/libsmb/libsmbclient.c') diff --git a/source3/libsmb/libsmbclient.c b/source3/libsmb/libsmbclient.c index bcbdd5a15a..8fd18bd99d 100644 --- a/source3/libsmb/libsmbclient.c +++ b/source3/libsmb/libsmbclient.c @@ -5142,7 +5142,6 @@ cacl_set(TALLOC_CTX *ctx, switch (mode) { case SMBC_XATTR_MODE_REMOVE_ALL: old->dacl->num_aces = 0; - old->dacl = NULL; dacl = old->dacl; break; @@ -5159,9 +5158,6 @@ cacl_set(TALLOC_CTX *ctx, old->dacl->aces[k+1]; } old->dacl->num_aces--; - if (old->dacl->num_aces == 0) { - old->dacl = NULL; - } found = True; dacl = old->dacl; break; -- cgit