diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/nmbd/nmbd_become_dmb.c | 10 | ||||
-rw-r--r-- | source3/nmbd/nmbd_subnetdb.c | 8 |
2 files changed, 16 insertions, 2 deletions
diff --git a/source3/nmbd/nmbd_become_dmb.c b/source3/nmbd/nmbd_become_dmb.c index fb1fb33a81..523ec6cabf 100644 --- a/source3/nmbd/nmbd_become_dmb.c +++ b/source3/nmbd/nmbd_become_dmb.c @@ -120,6 +120,7 @@ in workgroup %s on subnet %s\n", if( subrec == unicast_subnet ) { struct nmb_name nmbname; struct in_addr my_first_ip; + struct in_addr *nip; /* Put our name and first IP address into the workgroup struct as domain master browser. This @@ -130,7 +131,14 @@ in workgroup %s on subnet %s\n", work->dmb_name = nmbname; /* Pick the first interface ip address as the domain master browser ip. */ - my_first_ip = *iface_n_ip(0); + nip = iface_n_ip(0); + + if (!nip) { + DEBUG(0,("become_domain_master_stage2: Error. iface_n_ip returned NULL\n")); + return; + } + + my_first_ip = *nip; putip((char *)&work->dmb_addr, &my_first_ip); diff --git a/source3/nmbd/nmbd_subnetdb.c b/source3/nmbd/nmbd_subnetdb.c index c3640028d2..5a93d8bec0 100644 --- a/source3/nmbd/nmbd_subnetdb.c +++ b/source3/nmbd/nmbd_subnetdb.c @@ -220,7 +220,13 @@ BOOL create_subnets(void) if (lp_we_are_a_wins_server()) { /* Pick the first interface ip address as the WINS server ip. */ - unicast_ip = *iface_n_ip(0); + struct in_addr *nip = iface_n_ip(0); + + if (!nip) { + return False; + } + + unicast_ip = *nip; } else { /* note that we do not set the wins server IP here. We just set it at zero and let the wins registration code cope |