[BusyBox] Patch for libbb/xconnect.c

Joel Coltoff joel at wmi.com
Fri Jul 19 10:51:03 UTC 2002


On both my host system and with mipsel-linux for my embedded systems
the function getservbyname() gives the port number already in host order.
In fact, this is how it was used by rdate in version 0.60.3. The snapshot
I have of the development tree from July 12, 2002 takes the port number
and stuffs it into htons() before it uses it. This causes bugs in rdate,
telnet and wget. This patch fixes that.

--- libbb/xconnect.c.new	Fri Jul 19 12:43:23 2002
+++ libbb/xconnect.c	Fri Jul 19 12:43:08 2002
@@ -57,7 +57,7 @@
 	struct sockaddr_in s_addr;
 	int s = socket(AF_INET, SOCK_STREAM, 0);
 	struct servent *tserv;
-	int port_nr=htons(atoi(port));
+	int port_nr=atoi(port);
 	struct hostent * he;

 	if (port_nr==0 && (tserv = getservbyname(port, "tcp")) != NULL)
@@ -65,7 +65,7 @@

 	memset(&s_addr, 0, sizeof(struct sockaddr_in));
 	s_addr.sin_family = AF_INET;
-	s_addr.sin_port = port_nr;
+	s_addr.sin_port = htons(port_nr);

 	he = xgethostbyname(host);
 	memcpy(&s_addr.sin_addr, he->h_addr, sizeof s_addr.sin_addr);

-- 
Joel Coltoff

... if you take cranberries and stew them like applesauce, they taste
much more like prunes than rhubarb does.
    -- Groucho Marx (Animal Crackers)




More information about the busybox mailing list