From: Ted Lemon Date: Sun, 15 Oct 2000 18:54:29 +0000 (+0000) Subject: Fix the math in the udp packet length calculator. X-Git-Tag: V3-BETA-2-PATCH-9~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e28dccc15987111e8bc90a6ee535dbeb58dfaf46;p=thirdparty%2Fdhcp.git Fix the math in the udp packet length calculator. --- diff --git a/common/packet.c b/common/packet.c index 28bea1bec..a34aae19f 100644 --- a/common/packet.c +++ b/common/packet.c @@ -42,7 +42,7 @@ #ifndef lint static char copyright[] = -"$Id: packet.c,v 1.38 2000/10/14 07:56:59 mellon Exp $ Copyright (c) 1996-2000 The Internet Software Consortium. All rights reserved.\n"; +"$Id: packet.c,v 1.39 2000/10/15 18:54:29 mellon Exp $ Copyright (c) 1996-2000 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -254,7 +254,8 @@ ssize_t decode_udp_ip_header (interface, buf, bufix, from, data, buflen) #endif /* USERLAND_FILTER */ ulen = ntohs (udp -> uh_ulen); - if (ulen < sizeof udp || ((unsigned char *)udp) + ulen > buf + buflen) { + if (ulen < sizeof *udp || + ((unsigned char *)udp) + ulen > buf + bufix + buflen) { log_info ("bogus UDP packet length: %d", ulen); return -1; }