Apply by doing:
	cd /usr/src
	patch -p0 < 012_xdr.patch

And then rebuild and install libc:
	cd lib/libc
	make obj cleandir depend
	make && make install

Note that programs that are linked statically will not pick up the
change unless they are rebuilt.  This includes the contents of /bin
and /sbin.

This is the second version of this errata.

Index: lib/libc/rpc/xdr_array.c
===================================================================
RCS file: /cvs/src/lib/libc/rpc/xdr_array.c,v
retrieving revision 1.4
retrieving revision 1.4.2.2
diff -u -r1.4 -r1.4.2.2
--- lib/libc/rpc/xdr_array.c	15 Sep 2001 13:51:01 -0000	1.4
+++ lib/libc/rpc/xdr_array.c	30 Jul 2002 07:30:28 -0000	1.4.2.2
@@ -45,6 +45,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <limits.h>
 #include <rpc/types.h>
 #include <rpc/xdr.h>
 
@@ -71,11 +72,12 @@
 	u_int nodesize;
 
 	/* like strings, arrays are really counted arrays */
-	if (! xdr_u_int(xdrs, sizep)) {
+	if (!xdr_u_int(xdrs, sizep)) {
 		return (FALSE);
 	}
 	c = *sizep;
-	if ((c > maxsize) && (xdrs->x_op != XDR_FREE)) {
+	if ((c > maxsize || c > UINT_MAX/elsize) &&
+	    (xdrs->x_op != XDR_FREE)) {
 		return (FALSE);
 	}
 	nodesize = c * elsize;
@@ -143,7 +145,7 @@
 
 	elptr = basep;
 	for (i = 0; i < nelem; i++) {
-		if (! (*xdr_elem)(xdrs, elptr)) {
+		if (!(*xdr_elem)(xdrs, elptr)) {
 			return(FALSE);
 		}
 		elptr += elemsize;