diff options
author | Michael Adam <obnox@samba.org> | 2008-01-11 18:55:20 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-01-11 18:55:26 +0100 |
commit | 618f9a60cc60bceb40eed31fbd845db18ccbaee4 (patch) | |
tree | aa4c545cf993a10839b0f3a53660658f3480c6c8 /source3/libnet/libnet_conf.c | |
parent | 2539cf073915c481ae449e2eb11f501c29276688 (diff) | |
download | samba-618f9a60cc60bceb40eed31fbd845db18ccbaee4.tar.gz samba-618f9a60cc60bceb40eed31fbd845db18ccbaee4.tar.bz2 samba-618f9a60cc60bceb40eed31fbd845db18ccbaee4.zip |
Fix panic in "net conf": Fix logic in error condition.
Michael
(This used to be commit 83aed537c16f632599484f60c5ccebc3ab713801)
Diffstat (limited to 'source3/libnet/libnet_conf.c')
-rw-r--r-- | source3/libnet/libnet_conf.c | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/source3/libnet/libnet_conf.c b/source3/libnet/libnet_conf.c index d0ef6eb0e6..dcb80d96ea 100644 --- a/source3/libnet/libnet_conf.c +++ b/source3/libnet/libnet_conf.c @@ -110,7 +110,7 @@ static WERROR libnet_conf_reg_open_path(TALLOC_CTX *mem_ctx, } werr = ntstatus_to_werror(registry_create_admin_token(tmp_ctx, &token)); - if (W_ERROR_IS_OK(werr)) { + if (!W_ERROR_IS_OK(werr)) { DEBUG(1, ("Error creating admin token\n")); goto done; } @@ -421,6 +421,48 @@ done: **********************************************************************/ /** + * Open the configuration. + * + * Upon success, this creates and returns the conf context + * that should be passed around in subsequent calls to the other + * libnet_conf functions. + */ +WERROR libnet_conf_open(TALLOC_CTX *mem_ctx, struct libnet_conf_ctx **conf_ctx) +{ + WERROR werr = WERR_OK; + struct libnet_conf_ctx *ctx; + + if (conf_ctx == NULL) { + return WERR_INVALID_PARAM; + } + + ctx = talloc_zero(mem_ctx, struct libnet_conf_ctx); + if (ctx == NULL) { + return WERR_NOMEM; + } + + talloc_set_destructor(ctx, libnet_conf_destrox_ctx); + + ctx->token = registry_create_admin_token(tmp_ctx); + if (ctx->token == NULL) { + DEBUG(1, ("Error creating admin token\n")); + /* what is the appropriate error code here? */ + werr = WERR_CAN_NOT_COMPLETE; + goto done; + } + + +} + +/** + * Close the configuration. + */ +WERROR libnet_conf_close(struct libnet_conf_ctx *ctx) +{ + regdb_close(); +} + +/** * Drop the whole configuration (restarting empty). */ WERROR libnet_conf_drop(void) |