Sophie

Sophie

distrib > Mandriva > current > x86_64 > by-pkgid > 0a63fa0c3d260ad6d1437b1b4749e2a9 > files > 1

talk-0.17-19mdv2010.1.src.rpm

--- netkit-ntalk-0.17-pre20000412/talkd/talkd.c~	1999-09-29 00:04:15.000000000 +0200
+++ netkit-ntalk-0.17-pre20000412/talkd/talkd.c	2006-01-31 18:21:56.000000000 +0100
@@ -68,6 +68,7 @@ char talkd_rcsid[] = 
 
 #define TIMEOUT 30
 #define MAXIDLE 120
+#define MINUDPSRCPORT 1024
 
 #if !defined(MAXHOSTNAMELEN)
 #define	MAXHOSTNAMELEN	64
@@ -167,6 +168,7 @@ do_one_packet(void)
 	struct sockaddr_in sn;
 	int cc, i, ok;
 	socklen_t addrlen;
+	int theirport;
 
 	addrlen = sizeof(sn);
 	cc = recvfrom(0, inbuf, sizeof(inbuf), 0,
@@ -194,6 +196,12 @@ do_one_packet(void)
 		return;
 	}
 
+	theirport = ntohs(sn.sin_port);
+	if (theirport < MINUDPSRCPORT) {
+		syslog(LOG_WARNING, "%d: bad port", theirport);
+		return;
+	}
+
 	/* 
 	 * If we get here we have an address we can reply to, although
 	 * it may not be good for much. If possible, reply to it, because