Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-5]: src/usr.bin/tftp Pull up revision 1.13 (requested by itojun):



details:   https://anonhg.NetBSD.org/src/rev/06ec77b1e3c1
branches:  netbsd-1-5
changeset: 490616:06ec77b1e3c1
user:      he <he%NetBSD.org@localhost>
date:      Sat Feb 03 21:12:49 2001 +0000

description:
Pull up revision 1.13 (requested by itojun):
  Make sure we do not overrun peeraddr.

diffstat:

 usr.bin/tftp/main.c |  7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diffs (35 lines):

diff -r f9c887312933 -r 06ec77b1e3c1 usr.bin/tftp/main.c
--- a/usr.bin/tftp/main.c       Sat Feb 03 21:09:17 2001 +0000
+++ b/usr.bin/tftp/main.c       Sat Feb 03 21:12:49 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: main.c,v 1.12.8.1 2001/01/25 17:44:06 jhawk Exp $      */
+/*     $NetBSD: main.c,v 1.12.8.2 2001/02/03 21:12:49 he Exp $ */
 
 /*
  * Copyright (c) 1983, 1993
@@ -40,7 +40,7 @@
 #if 0
 static char sccsid[] = "@(#)main.c     8.1 (Berkeley) 6/6/93";
 #else
-__RCSID("$NetBSD: main.c,v 1.12.8.1 2001/01/25 17:44:06 jhawk Exp $");
+__RCSID("$NetBSD: main.c,v 1.12.8.2 2001/02/03 21:12:49 he Exp $");
 #endif
 #endif /* not lint */
 
@@ -201,6 +201,8 @@
        }
 
        for (res = res0; res; res = res->ai_next) {
+               if (res->ai_addrlen > sizeof(peeraddr))
+                       continue;
                f = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
                if (f < 0) {
                        cause = "socket";
@@ -223,6 +225,7 @@
        if (f < 0)
                warn("%s", cause);
        else {
+               /* res->ai_addr <= sizeof(peeraddr) is guaranteed */
                memcpy(&peeraddr, res->ai_addr, res->ai_addrlen);
                if (res->ai_canonname) {
                        (void) strncpy(hostname, res->ai_canonname,



Home | Main Index | Thread Index | Old Index