From 171a361375e1cd76a80253d67e4e34a139bb5570 Mon Sep 17 00:00:00 2001 From: Wilco Baan Hofman Date: Mon, 20 Apr 2009 16:51:33 +0200 Subject: Fix ini parsing in the s3 gpext modules. Fix ini parser API. Make the build work MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Günther Deschner --- libgpo/gpo_ini.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'libgpo/gpo_ini.c') diff --git a/libgpo/gpo_ini.c b/libgpo/gpo_ini.c index 79bf5fd8d8..af2b88c0b8 100644 --- a/libgpo/gpo_ini.c +++ b/libgpo/gpo_ini.c @@ -169,6 +169,7 @@ NTSTATUS gp_inifile_init_context(TALLOC_CTX *mem_ctx, { struct gp_inifile_context *ctx = NULL; NTSTATUS status; + int rv; char *tmp_filename = NULL; const char *ini_filename = NULL; @@ -192,6 +193,12 @@ NTSTATUS gp_inifile_init_context(TALLOC_CTX *mem_ctx, goto failed; } + rv = pm_process(tmp_filename, change_section, store_keyval_pair, ctx); + if (!rv) { + return NT_STATUS_NO_SUCH_FILE; + } + + ctx->generated_filename = tmp_filename; ctx->mem_ctx = mem_ctx; @@ -217,7 +224,7 @@ NTSTATUS gp_inifile_init_context(TALLOC_CTX *mem_ctx, #define GPT_INI_PARAMETER_VERSION "Version" #define GPT_INI_PARAMETER_DISPLAYNAME "displayName" -NTSTATUS parse_gpt_ini(struct gp_inifile_context *ctx, +NTSTATUS parse_gpt_ini(TALLOC_CTX *mem_ctx, const char *filename, uint32_t *version, char **display_name) @@ -226,12 +233,16 @@ NTSTATUS parse_gpt_ini(struct gp_inifile_context *ctx, int rv; int v = 0; char *name = NULL; + struct gp_inifile_context *ctx; if (!filename) { return NT_STATUS_INVALID_PARAMETER; } - rv = pm_process(filename, change_section, store_keyval_pair, NULL); + ctx = talloc_zero(mem_ctx, struct gp_inifile_context); + NT_STATUS_HAVE_NO_MEMORY(ctx); + + rv = pm_process(filename, change_section, store_keyval_pair, ctx); if (!rv) { return NT_STATUS_NO_SUCH_FILE; } @@ -263,7 +274,7 @@ NTSTATUS parse_gpt_ini(struct gp_inifile_context *ctx, *version = v; } - result = NT_STATUS_OK; + talloc_free(ctx); - return result; + return NT_STATUS_OK; } -- cgit