summaryrefslogtreecommitdiffstats
path: root/source3/utils/sharesec.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/utils/sharesec.c')
-rw-r--r--source3/utils/sharesec.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/source3/utils/sharesec.c b/source3/utils/sharesec.c
index 2b1e435cdb..969d9674f3 100644
--- a/source3/utils/sharesec.c
+++ b/source3/utils/sharesec.c
@@ -25,6 +25,7 @@
#include "includes.h"
#include "popt_common.h"
#include "../libcli/security/security.h"
+#include "../librpc/gen_ndr/ndr_security.h"
#include "passdb/machine_sid.h"
static TALLOC_CTX *ctx;
@@ -417,6 +418,7 @@ static int change_share_sec(TALLOC_CTX *mem_ctx, const char *sharename, char *th
struct security_descriptor *old = NULL;
size_t sd_size = 0;
uint32 i, j;
+ char *sd_str;
if (mode != SMB_ACL_SET && mode != SMB_SD_DELETE) {
if (!(old = get_share_security( mem_ctx, sharename, &sd_size )) ) {
@@ -437,7 +439,11 @@ static int change_share_sec(TALLOC_CTX *mem_ctx, const char *sharename, char *th
/* should not happen */
return 0;
case SMB_ACL_VIEW:
- sec_desc_print( stdout, old);
+ sd_str = ndr_print_struct_string(mem_ctx,
+ (ndr_print_fn_t)ndr_print_security_descriptor,
+ "", old);
+ fprintf(stdout, "%s\n", sd_str);
+ talloc_free(sd_str);
return 0;
case SMB_ACL_DELETE:
for (i=0;sd->dacl && i<sd->dacl->num_aces;i++) {
@@ -456,9 +462,11 @@ static int change_share_sec(TALLOC_CTX *mem_ctx, const char *sharename, char *th
}
if (!found) {
- printf("ACL for ACE:");
- print_ace(stdout, &sd->dacl->aces[i]);
- printf(" not found\n");
+ sd_str = ndr_print_struct_string(mem_ctx,
+ (ndr_print_fn_t)ndr_print_security_ace,
+ "", &sd->dacl->aces[i]);
+ printf("ACL for ACE: %s not found\n", sd_str);
+ talloc_free(sd_str);
}
}
break;