summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/netapi/examples/localgroup/localgroup_setmembers.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/source3/lib/netapi/examples/localgroup/localgroup_setmembers.c b/source3/lib/netapi/examples/localgroup/localgroup_setmembers.c
index acee5cd9c6..c35f2bbb81 100644
--- a/source3/lib/netapi/examples/localgroup/localgroup_setmembers.c
+++ b/source3/lib/netapi/examples/localgroup/localgroup_setmembers.c
@@ -40,6 +40,7 @@ int main(int argc, const char **argv)
uint32_t level = 3;
const char **names = NULL;
int i = 0;
+ size_t buf_size = 0;
poptContext pc;
int opt;
@@ -85,8 +86,9 @@ int main(int argc, const char **argv)
switch (level) {
case 0:
- status = NetApiBufferAllocate(sizeof(struct LOCALGROUP_MEMBERS_INFO_0) * total_entries,
- (void **)&g0);
+ buf_size = sizeof(struct LOCALGROUP_MEMBERS_INFO_0) * total_entries;
+
+ status = NetApiBufferAllocate(buf_size, (void **)&g0);
if (status) {
printf("NetApiBufferAllocate failed with: %s\n",
libnetapi_get_error_string(ctx, status));
@@ -103,8 +105,9 @@ int main(int argc, const char **argv)
buffer = (uint8_t *)g0;
break;
case 3:
- status = NetApiBufferAllocate(sizeof(struct LOCALGROUP_MEMBERS_INFO_3) * total_entries,
- (void **)&g3);
+ buf_size = sizeof(struct LOCALGROUP_MEMBERS_INFO_3) * total_entries;
+
+ status = NetApiBufferAllocate(buf_size, (void **)&g3);
if (status) {
printf("NetApiBufferAllocate failed with: %s\n",
libnetapi_get_error_string(ctx, status));
@@ -133,6 +136,8 @@ int main(int argc, const char **argv)
libnetapi_get_error_string(ctx, status));
}
+ NetApiBufferFree(buffer);
+
out:
libnetapi_free(ctx);
poptFreeContext(pc);