--- 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