svn commit: samba r3265 - in branches/SAMBA_3_0_RELEASE/source/libsmb: .

jerry at samba.org jerry at samba.org
Tue Oct 26 14:23:39 GMT 2004


Author: jerry
Date: 2004-10-26 14:23:39 +0000 (Tue, 26 Oct 2004)
New Revision: 3265

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_3_0_RELEASE/source/libsmb&rev=3265&nolog=1

Log:
fix lmhosts lookup so that we don't say we found something when we really didn't
Modified:
   branches/SAMBA_3_0_RELEASE/source/libsmb/namequery.c


Changeset:
Modified: branches/SAMBA_3_0_RELEASE/source/libsmb/namequery.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/libsmb/namequery.c	2004-10-26 14:22:37 UTC (rev 3264)
+++ branches/SAMBA_3_0_RELEASE/source/libsmb/namequery.c	2004-10-26 14:23:39 UTC (rev 3265)
@@ -847,6 +847,7 @@
 	pstring lmhost_name;
 	int name_type2;
 	struct in_addr return_ip;
+	BOOL result = False;
 
 	*return_iplist = NULL;
 	*return_count = 0;
@@ -854,38 +855,42 @@
 	DEBUG(3,("resolve_lmhosts: Attempting lmhosts lookup for name %s<0x%x>\n", name, name_type));
 
 	fp = startlmhosts(dyn_LMHOSTSFILE);
-	if(fp) {
-		while (getlmhostsent(fp, lmhost_name, &name_type2,
-				     &return_ip)) {
 
-			if (!strequal(name, lmhost_name))
-				continue;
+	if ( fp == NULL )
+		return False;
 
-			if ((name_type2 != -1) && (name_type != name_type2))
-				continue;
+	while (getlmhostsent(fp, lmhost_name, &name_type2, &return_ip)) 
+	{
 
-			*return_iplist = (struct ip_service *)
-				realloc((*return_iplist),
-					sizeof(struct ip_service) *
-					((*return_count)+1));
+		if (!strequal(name, lmhost_name))
+			continue;
 
-			if ((*return_iplist) == NULL) {
-				DEBUG(3,("resolve_lmhosts: malloc fail !\n"));
-				return False;
-			}
+		if ((name_type2 != -1) && (name_type != name_type2))
+			continue;
 
-			(*return_iplist)[*return_count].ip   = return_ip;
-			(*return_iplist)[*return_count].port = PORT_NONE;
-			*return_count += 1;
+		*return_iplist = (struct ip_service *)realloc((*return_iplist),
+			sizeof(struct ip_service) * ((*return_count)+1));
 
-			/* Multiple names only for DC lookup */
-			if (name_type != 0x1c)
-				break;
+		if ((*return_iplist) == NULL) {
+			DEBUG(3,("resolve_lmhosts: malloc fail !\n"));
+			return False;
 		}
-		endlmhosts(fp);
-		return True;
+
+		(*return_iplist)[*return_count].ip   = return_ip;
+		(*return_iplist)[*return_count].port = PORT_NONE;
+		*return_count += 1;
+
+		/* we found something */
+		result = True;
+
+		/* Multiple names only for DC lookup */
+		if (name_type != 0x1c)
+			break;
 	}
-	return False;
+
+	endlmhosts(fp);
+
+	return result;
 }
 
 



More information about the samba-cvs mailing list