diff options
author | Günther Deschner <gd@samba.org> | 2007-11-06 00:50:47 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2007-11-06 00:50:47 +0100 |
commit | 99d9993fdb9cdf5ac054329ddf5e9c4f258f9049 (patch) | |
tree | ae7ed28f3fc736fc72919a47d2479ee7b015c58e /source3/registry/reg_db.c | |
parent | 3fd2d4ed856bc4fa053e1c03926ca71bb4ab1a9f (diff) | |
download | samba-99d9993fdb9cdf5ac054329ddf5e9c4f258f9049.tar.gz samba-99d9993fdb9cdf5ac054329ddf5e9c4f258f9049.tar.bz2 samba-99d9993fdb9cdf5ac054329ddf5e9c4f258f9049.zip |
When deleting a key from the registry make sure the non-default
security descriptor gets deleted as well.
Guenther
(This used to be commit d140d68537225b6a6a99be3d9b09354e3f6ad8c9)
Diffstat (limited to 'source3/registry/reg_db.c')
-rw-r--r-- | source3/registry/reg_db.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source3/registry/reg_db.c b/source3/registry/reg_db.c index 8dd61fcdff..4947b2ad52 100644 --- a/source3/registry/reg_db.c +++ b/source3/registry/reg_db.c @@ -788,6 +788,21 @@ static WERROR regdb_set_secdesc(const char *key, } normalize_dbkey(tdbkey); + if (secdesc == NULL) { + /* assuming a delete */ + int tdb_ret; + + tdb_ret = tdb_trans_delete(tdb_reg->tdb, + string_term_tdb_data(tdbkey)); + if (tdb_ret == -1) { + err = ntstatus_to_werror(map_nt_error_from_unix(errno)); + } else { + err = WERR_OK; + } + + goto done; + } + err = ntstatus_to_werror(marshall_sec_desc(mem_ctx, secdesc, &tdbdata.dptr, &tdbdata.dsize)); |