diff options
-rw-r--r-- | source3/lib/netapi/examples/localgroup/localgroup_setmembers.c | 13 |
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); |