svn commit: samba r11794 - in branches/SAMBA_4_0/source/libnet: .
tridge at samba.org
tridge at samba.org
Fri Nov 18 23:27:58 GMT 2005
Author: tridge
Date: 2005-11-18 23:27:58 +0000 (Fri, 18 Nov 2005)
New Revision: 11794
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=11794
Log:
- fixed a valgrind error in libnet, caused by using a stack variable
after the function has returned (the *address variable was assigned
into the state).
- changed libnet to use event_context_find() instead of
event_context_init(), so it works as a child of existing code that
uses a event context
Modified:
branches/SAMBA_4_0/source/libnet/libnet.c
branches/SAMBA_4_0/source/libnet/libnet_lookup.c
branches/SAMBA_4_0/source/libnet/libnet_rpc.c
Changeset:
Modified: branches/SAMBA_4_0/source/libnet/libnet.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet.c 2005-11-18 23:15:47 UTC (rev 11793)
+++ branches/SAMBA_4_0/source/libnet/libnet.c 2005-11-18 23:27:58 UTC (rev 11794)
@@ -38,7 +38,7 @@
/* events */
if (ev == NULL) {
- ev = event_context_init(ctx);
+ ev = event_context_find(ctx);
if (ev == NULL) {
talloc_free(ctx);
return NULL;
Modified: branches/SAMBA_4_0/source/libnet/libnet_lookup.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_lookup.c 2005-11-18 23:15:47 UTC (rev 11793)
+++ branches/SAMBA_4_0/source/libnet/libnet_lookup.c 2005-11-18 23:27:58 UTC (rev 11794)
@@ -34,7 +34,6 @@
struct lookup_state {
struct composite_context *resolve_ctx;
struct nbt_name hostname;
- const char **address;
};
@@ -50,7 +49,6 @@
struct composite_context *c;
struct lookup_state *s;
const char** methods;
- const char* address = talloc_array(ctx, const char, 16);
if (!io) return NULL;
@@ -62,14 +60,13 @@
if (s == NULL) goto failed;
/* prepare event context */
- c->event_ctx = event_context_init(c);
+ c->event_ctx = event_context_find(c);
if (c->event_ctx == NULL) goto failed;
/* parameters */
s->hostname.name = talloc_strdup(s, io->in.hostname);
s->hostname.type = io->in.type;
s->hostname.scope = NULL;
- s->address = &address;
/* name resolution methods */
if (io->in.methods) {
@@ -106,12 +103,14 @@
{
NTSTATUS status;
struct lookup_state *s;
+ const char *address;
s = talloc_get_type(c->private_data, struct lookup_state);
- status = resolve_name_recv(s->resolve_ctx, mem_ctx, s->address);
+ status = resolve_name_recv(s->resolve_ctx, mem_ctx, &address);
if (NT_STATUS_IS_OK(status)) {
- io->out.address = s->address;
+ io->out.address = str_list_make(mem_ctx, address, NULL);
+ NT_STATUS_HAVE_NO_MEMORY(io->out.address);
}
return status;
Modified: branches/SAMBA_4_0/source/libnet/libnet_rpc.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_rpc.c 2005-11-18 23:15:47 UTC (rev 11793)
+++ branches/SAMBA_4_0/source/libnet/libnet_rpc.c 2005-11-18 23:27:58 UTC (rev 11794)
@@ -77,11 +77,10 @@
NTSTATUS status;
struct libnet_RpcConnect r2;
struct libnet_Lookup f;
- const char *address = talloc_array(ctx, const char, 16);
f.in.hostname = r->in.domain_name;
f.in.methods = NULL;
- f.out.address = &address;
+ f.out.address = NULL;
status = libnet_LookupPdc(ctx, mem_ctx, &f);
if (!NT_STATUS_IS_OK(status)) {
@@ -91,7 +90,7 @@
}
r2.level = LIBNET_RPC_CONNECT_SERVER;
- r2.in.domain_name = talloc_strdup(mem_ctx, *f.out.address);
+ r2.in.domain_name = talloc_strdup(mem_ctx, f.out.address[0]);
r2.in.dcerpc_iface_name = r->in.dcerpc_iface_name;
r2.in.dcerpc_iface_uuid = r->in.dcerpc_iface_uuid;
r2.in.dcerpc_iface_version = r->in.dcerpc_iface_version;
More information about the samba-cvs
mailing list