diff -u --recursive --new-file linux-2.0.38/Documentation/Changes linux-2.0.39/Documentation/Changes
--- linux-2.0.38/Documentation/Changes	Sun Jun 13 19:20:59 1999
+++ linux-2.0.39/Documentation/Changes	Thu Dec 16 00:28:46 1999
@@ -44,7 +44,7 @@
    The most current version should always be available from
 http://cyberbuzz.gatech.edu/kaboom/linux/ as well.
 
-Last updated: February 16, 1998.
+Last updated: December 16, 1999.
 Current Author: Chris Ricker (kaboom@gatech.edu).
 
 Current Releases (the latest necessary for basic functionality, not
@@ -56,7 +56,7 @@
 - PPP daemon		 2.2.0f
 - Dynamic linker (ld.so) 1.7.14
 - GNU CC		 2.7.2.1
-- Binutils		 2.7.0.3
+- Binutils		 2.8.1.0.23
 - Linux C Library	 Stable:  5.2.18, Beta:  5.4.33
 - Linux C++ Library	 2.7.2.1
 - Termcap		 2.0.8
diff -u --recursive --new-file linux-2.0.38/MAINTAINERS linux-2.0.39/MAINTAINERS
--- linux-2.0.38/MAINTAINERS	Sun Jun 13 19:20:59 1999
+++ linux-2.0.39/MAINTAINERS	Thu Dec 16 00:13:57 1999
@@ -16,7 +16,8 @@
 	SMC etherpower for that.)
 
 3.	Make sure your changes compile correctly in multiple
-	configurations.
+	configurations. In particular check that changes work both as a
+	module and built into the kernel.
 
 4.	When you are happy with a change make it generally available for
 	testing and await feedback.
@@ -28,7 +29,8 @@
 	job the maintainers (and especially Linus) do is to keep things
 	looking the same. Sometimes this means that the clever hack in
 	your driver to get around a problem actual needs to become a
-	generalised kernel feature ready for next time.
+	generalised kernel feature ready for next time. See
+	Documentation/CodingStyle for guidance here.
 
 	PLEASE try to include any credit lines you want added with the
 	patch. It avoids people being missed off by mistake and makes
@@ -68,6 +70,12 @@
 			it has been replaced by a better system and you
 			should be using that.
 
+THE V2.0 KERNEL IN GENERAL
+P:	David Weinehall
+M:	tao@acc.umu.se
+L:	linux-kernel@vger.rutgers.edu
+S:	Maintained
+
 EXT2 FILE SYSTEM
 P:	Remy Card
 M:	Remy.Card@linux.org
@@ -230,7 +238,7 @@
 L:	linux-scsi@vger.rutgers.edu
 S:	Maintained
 
-FTAPE/QIC-117:
+FTAPE/QIC-117
 P:	Claus-Justus Heine
 M:	claus@momo.math.rwth-aachen.de
 L:	linux-tape@vger.rutgers.edu
@@ -289,7 +297,7 @@
 L:	linux-net@vger.rutgers.edu
 S:	Maintained
 
-NCP FILESYSTEM:
+NCP FILESYSTEM
 P:	Volker Lendecke
 M:	vl@kki.org
 L:	linware@sh.cvut.cz
@@ -301,7 +309,7 @@
 L:	linux-hams@vger.rutgers.edu
 S:	Maintained
 
-NETWORKING [GENERAL]:
+NETWORKING [GENERAL]
 P:	Alan Cox
 M:	net-patches@lxorguk.ukuu.org.uk
 L:	linux-net@vger.rutgers.edu
@@ -325,7 +333,7 @@
 W:	http://mosquitonet.Stanford.EDU/strip.html
 S:	Maintained
 
-SMB FILESYSTEM:
+SMB FILESYSTEM
 P:	Volker Lendecke
 M:	vl@kki.org
 L:	samba@listproc.anu.edu.au
@@ -337,7 +345,7 @@
 L:	linux-smp@vger.rutgers.edu
 S:	Maintained
 
-SPARC:
+SPARC
 P:	David S. Miller
 M:	davem@caip.rutgers.edu
 L:	sparclinux@vger.rutgers.edu
@@ -349,26 +357,26 @@
 L:	linux-scsi@vger.rutgers.edu
 S:	Maintained
 
-SVGA HANDLING:
+SVGA HANDLING
 P:	Martin Mares
 M:	mj@k332.feld.cvut.cz
 L:	linux-video@atrey.karlin.mff.cuni.cz
 S:	Maintained
 
-VFAT FILESYSTEM:
+VFAT FILESYSTEM
 P:	Gordon Chaffee
 M:	chaffee@plateau.cs.berkeley.edu
 L:	linux-kernel@vger.rutgers.edu
 W:	http://www-plateau.cs.berkeley.edu/people/chaffee
 S:	Maintained
 
-DIGIBOARD DRIVER:
+DIGIBOARD DRIVER
 P:	Christoph Lameter
 M:	clameter@fuller.edu
 L:	digiboard@list.fuller.edu
 S:	Maintained
 
-RISCOM8 DRIVER:
+RISCOM8 DRIVER
 P:	Dmitry Gorodchanin
 M:	pgmdsg@ibi.com
 L:	linux-kernel@vger.rutgers.edu
@@ -387,7 +395,7 @@
 L:	linux-kernel@vger.rutgers.edu
 S:	Maintained
 
-MENUCONFIG:
+MENUCONFIG
 P:	William Roadcap
 M:	roadcapw@titus.org
 L:	linux-kernel@vger.rutgers.edu
@@ -458,6 +466,6 @@
 L:	linux-scsi@vger.rutgers.edu
 S:	Maintained
 
-REST:
+REST
 P:	Linus Torvalds
 S:	Buried alive in email
diff -u --recursive --new-file linux-2.0.38/Makefile linux-2.0.39/Makefile
--- linux-2.0.38/Makefile	Thu Aug 26 00:08:27 1999
+++ linux-2.0.39/Makefile	Wed Dec 15 12:22:10 1999
@@ -1,6 +1,6 @@
 VERSION = 2
 PATCHLEVEL = 0
-SUBLEVEL = 38
+SUBLEVEL = 39
 
 ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
 
diff -u --recursive --new-file linux-2.0.38/net/ipv4/ip_output.c linux-2.0.39/net/ipv4/ip_output.c
--- linux-2.0.38/net/ipv4/ip_output.c	Thu Jun  4 00:17:50 1998
+++ linux-2.0.39/net/ipv4/ip_output.c	Wed Dec 15 12:49:57 1999
@@ -30,6 +30,7 @@
  *		Juan Jose Ciarlante:	sk/skb source address rewriting
  * 	Elena Apolinario Fdez de Sousa,:ipmr_forward never received multicast
  *	Juan-Mariano de Goyeneche	traffic generated locally.
+ *	Andrea Arcangeli	:	Fix for the 65468 bytes ping-exploit
  */
 
 #include <asm/segment.h>
@@ -703,7 +704,12 @@
 
 	if (!sk->ip_hdrincl) {
 		length += sizeof(struct iphdr);
-		if(opt) length += opt->optlen;
+		if (opt) {
+			/* make sure not to exceed maximum packet size */
+			if (0xffff - length < opt->optlen)
+				return -EMSGSIZE;
+			length += opt->optlen;
+		}
 	}
 
 	if(length <= dev->mtu && !MULTICAST(daddr) && daddr!=0xFFFFFFFF && daddr!=dev->pa_brdaddr)
