summaryrefslogtreecommitdiff
path: root/source3/lib
diff options
context:
space:
mode:
Diffstat (limited to 'source3/lib')
-rw-r--r--source3/lib/genparser.c5
-rw-r--r--source3/lib/genparser_samba.c18
2 files changed, 19 insertions, 4 deletions
diff --git a/source3/lib/genparser.c b/source3/lib/genparser.c
index 233050b432..7476b5d0af 100644
--- a/source3/lib/genparser.c
+++ b/source3/lib/genparser.c
@@ -256,7 +256,6 @@ static int gen_dump_array(TALLOC_CTX *mem_ctx,
addstr(mem_ctx, p, "}\n")) {
return -1;
}
- free(s);
return 0;
}
@@ -673,7 +672,7 @@ int gen_parse(TALLOC_CTX *mem_ctx, const struct parse_struct *pinfo, char *data,
{
char *str, *s0;
- s0 = strdup(s);
+ s0 = talloc_strdup(mem_ctx, s);
str = s0;
while (*str) {
@@ -706,12 +705,10 @@ int gen_parse(TALLOC_CTX *mem_ctx, const struct parse_struct *pinfo, char *data,
*str++ = 0;
if (gen_parse_one(mem_ctx, pinfo, name, data, value) != 0) {
- free(s0);
return -1;
}
}
- free(s0);
return 0;
}
diff --git a/source3/lib/genparser_samba.c b/source3/lib/genparser_samba.c
index bece587747..7eabf5a56e 100644
--- a/source3/lib/genparser_samba.c
+++ b/source3/lib/genparser_samba.c
@@ -118,7 +118,16 @@ int gen_parse_LUID(TALLOC_CTX *mem_ctx, char *ptr, const char *str)
return 0;
}
+int gen_parse_DATA_BLOB(TALLOC_CTX *mem_ctx, char *ptr, const char *str)
+{
+ return gen_parse_struct(mem_ctx, pinfo_data_blob_info, ptr, str);
+}
+int gen_parse_TALLOC_CTX(TALLOC_CTX *mem_ctx, char *ptr, const char *str)
+{
+ (TALLOC_CTX *)ptr = NULL;
+ return 0;
+}
/* DUMP functions */
@@ -198,3 +207,12 @@ int gen_dump_LUID(TALLOC_CTX *mem_ctx, struct parse_string *p, const char *ptr,
return addshort(mem_ctx, p, "%u,%u", high, low);
}
+int gen_dump_DATA_BLOB(TALLOC_CTX *mem_ctx, struct parse_string *p, const char *ptr, unsigned indent)
+{
+ return gen_dump_struct(mem_ctx, pinfo_data_blob_info, p, ptr, indent);
+}
+
+int gen_dump_TALLOC_CTX(TALLOC_CTX *mem_ctx, struct parse_string *p, const char *ptr, unsigned indent)
+{
+ return addshort(mem_ctx, p, "TALLOC_CTX");
+}