printf("Unable to allocate %d bytes for %s structure\n",
(int)f->struct_size,
f->name);
+ TALLOC_FREE(mem_ctx);
exit(1);
}
"structure\n",
(int)f->struct_size,
f->name);
+ TALLOC_FREE(mem_ctx);
exit(1);
}
if (ctx_filename) {
if (flags & NDR_IN) {
printf("Context file can only be used for \"out\" packages\n");
+ TALLOC_FREE(mem_ctx);
exit(1);
}
data = (uint8_t *)file_load(ctx_filename, &size, 0, mem_ctx);
if (!data) {
perror(ctx_filename);
+ TALLOC_FREE(mem_ctx);
exit(1);
}
ndr_pull = ndr_pull_init_blob(&blob, mem_ctx);
if (ndr_pull == NULL) {
perror("ndr_pull_init_blob");
+ TALLOC_FREE(mem_ctx);
exit(1);
}
ndr_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
printf("pull for context file returned %s\n",
ndr_map_error2string(ndr_err));
+ TALLOC_FREE(mem_ctx);
exit(1);
}
memcpy(v_st, st, f->struct_size);
ndr_pull = ndr_pull_init_blob(&blob, mem_ctx);
if (ndr_pull == NULL) {
perror("ndr_pull_init_blob");
+ TALLOC_FREE(mem_ctx);
exit(1);
}
ndr_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
&f->out_pipes);
if (!NT_STATUS_IS_OK(status)) {
printf("dump FAILED\n");
+ TALLOC_FREE(mem_ctx);
exit(1);
}
}
if (stop_on_parse_failure && !NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
printf("not printing because --stop-on-parse-failure\n");
+ TALLOC_FREE(mem_ctx);
exit(1);
}
ndr_map_error2string(ndr_err));
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
printf("validate push FAILED\n");
+ TALLOC_FREE(mem_ctx);
exit(1);
}
ndr_v_pull = ndr_pull_init_blob(&v_blob, mem_ctx);
if (ndr_v_pull == NULL) {
perror("ndr_pull_init_blob");
+ TALLOC_FREE(mem_ctx);
exit(1);
}
ndr_v_pull->flags |= LIBNDR_FLAG_REF_ALLOC;
ndr_map_error2string(ndr_err));
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
printf("validate pull FAILED\n");
+ TALLOC_FREE(mem_ctx);
exit(1);
}
}
printf("dump OK\n");
- talloc_free(mem_ctx);
+ TALLOC_FREE(mem_ctx);
poptFreeContext(pc);