summaryrefslogtreecommitdiff
path: root/source4/lib/policy/gp_ini.c
diff options
context:
space:
mode:
authorWilco Baan Hofman <wilco@baanhofman.nl>2010-05-24 21:36:49 +0200
committerJelmer Vernooij <jelmer@samba.org>2010-06-20 17:19:13 +0200
commitb9b85d6b0e23e042d60c83fef477fd4006a20c14 (patch)
tree858858319e18999dccc6a5eee240dd429547345a /source4/lib/policy/gp_ini.c
parent9b5e0fe6bb363aaaba513b0604476616d6cc9fd8 (diff)
downloadsamba-b9b85d6b0e23e042d60c83fef477fd4006a20c14.tar.gz
samba-b9b85d6b0e23e042d60c83fef477fd4006a20c14.tar.bz2
samba-b9b85d6b0e23e042d60c83fef477fd4006a20c14.zip
Fix memory allocation with error handling.
Also moved pypolicy.c headers around so as not to generate compile warnings Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
Diffstat (limited to 'source4/lib/policy/gp_ini.c')
-rw-r--r--source4/lib/policy/gp_ini.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/source4/lib/policy/gp_ini.c b/source4/lib/policy/gp_ini.c
index e76e7c0f08..d16011c722 100644
--- a/source4/lib/policy/gp_ini.c
+++ b/source4/lib/policy/gp_ini.c
@@ -33,7 +33,9 @@ static bool gp_add_ini_section(const char *name, void *callback_data)
struct gp_ini_context *ini = parse->ini;
ini->sections = talloc_realloc(ini, ini->sections, struct gp_ini_section, ini->num_sections+1);
+ if (ini->sections == NULL) return false;
ini->sections[ini->num_sections].name = talloc_strdup(ini, name);
+ if (ini->sections[ini->num_sections].name == NULL) return false;
parse->cur_section = ini->num_sections;
ini->num_sections++;
@@ -53,8 +55,11 @@ static bool gp_add_ini_param(const char *name, const char *value, void *callback
section = &ini->sections[parse->cur_section];
section->params = talloc_realloc(ini, ini->sections[parse->cur_section].params, struct gp_ini_param, section->num_params+1);
+ if (section->params == NULL) return false;
section->params[section->num_params].name = talloc_strdup(ini, name);
+ if (section->params[section->num_params].name == NULL) return false;
section->params[section->num_params].value = talloc_strdup(ini, value);
+ if (section->params[section->num_params].value == NULL) return false;
section->num_params++;
return true;
@@ -66,6 +71,7 @@ NTSTATUS gp_parse_ini(TALLOC_CTX *mem_ctx, struct gp_context *gp_ctx, const char
bool rv;
parse.ini = talloc_zero(mem_ctx, struct gp_ini_context);
+ NT_STATUS_HAVE_NO_MEMORY(parse.ini);
parse.cur_section = -1;
rv = pm_process(filename, gp_add_ini_section, gp_add_ini_param, &parse);