]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
sharesec: Return NTSTATUS from delete_share_security
authorChristof Schmitt <cs@samba.org>
Wed, 18 Sep 2019 20:37:32 +0000 (13:37 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 26 Nov 2019 21:28:31 +0000 (21:28 +0000)
Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/include/proto.h
source3/lib/sharesec.c
source3/utils/sharesec.c

index effa2778c0e4dbb5aac35438a9365a595febd66f..223f45b69ee94c0be1dc0e41e96b26fd38bae67a 100644 (file)
@@ -144,7 +144,7 @@ struct security_descriptor *get_share_security( TALLOC_CTX *ctx, const char *ser
                              size_t *psize);
 NTSTATUS set_share_security(const char *share_name,
                            struct security_descriptor *psd);
-bool delete_share_security(const char *servicename);
+NTSTATUS delete_share_security(const char *servicename);
 bool share_access_check(const struct security_token *token,
                        const char *sharename,
                        uint32_t desired_access,
index 1822cec3df23f42b516ff5b7f5dd3e80050763e8..acbdd8b5df918b9f1c687dd39e9f7d615c4f550b 100644 (file)
@@ -410,27 +410,27 @@ NTSTATUS set_share_security(const char *share_name,
  Delete a security descriptor.
 ********************************************************************/
 
-bool delete_share_security(const char *servicename)
+NTSTATUS delete_share_security(const char *servicename)
 {
        TDB_DATA kbuf;
        char *key;
        NTSTATUS status;
        char *c_servicename = canonicalize_servicename(talloc_tos(), servicename);
 
-       if (!c_servicename) {
-               return NULL;
+       if (c_servicename == NULL) {
+               return NT_STATUS_INVALID_PARAMETER;
        }
 
        status = share_info_db_init();
        if (!NT_STATUS_IS_OK(status)) {
                TALLOC_FREE(c_servicename);
-               return False;
+               return status;
        }
 
        if (!(key = talloc_asprintf(talloc_tos(), SHARE_SECURITY_DB_KEY_PREFIX_STR "%s",
                                    c_servicename))) {
                TALLOC_FREE(c_servicename);
-               return False;
+               return NT_STATUS_NO_MEMORY;
        }
        kbuf = string_term_tdb_data(key);
 
@@ -439,11 +439,11 @@ bool delete_share_security(const char *servicename)
                DEBUG(0, ("delete_share_security: Failed to delete entry for "
                          "share %s: %s\n", c_servicename, nt_errstr(status)));
                TALLOC_FREE(c_servicename);
-               return False;
+               return status;
        }
 
        TALLOC_FREE(c_servicename);
-       return True;
+       return NT_STATUS_OK;
 }
 
 /*******************************************************************
index 96ac50929a390c77f0b58d9812a4ad3621013c1e..d22f96be5eb4caeb5b843808046813372e266ed5 100644 (file)
@@ -246,7 +246,8 @@ static int change_share_sec(TALLOC_CTX *mem_ctx, const char *sharename, char *th
            old = sd;
            break;
        case SMB_SD_DELETE:
-           if (!delete_share_security(sharename)) {
+           status = delete_share_security(sharename);
+           if (!NT_STATUS_IS_OK(status)) {
                fprintf( stderr, "Failed to delete security descriptor for "
                         "share [%s]\n", sharename );
                return -1;