From owner-p4-projects@FreeBSD.ORG Fri Feb 29 19:48:21 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 347C51065BFD; Fri, 29 Feb 2008 19:48:20 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0D07E1065A38 for ; Fri, 29 Feb 2008 19:48:18 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 74C2A8FC26 for ; Fri, 29 Feb 2008 19:48:18 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m1TJmIbj092596 for ; Fri, 29 Feb 2008 19:48:18 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m1TJmI5I092594 for perforce@freebsd.org; Fri, 29 Feb 2008 19:48:18 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 29 Feb 2008 19:48:18 GMT Message-Id: <200802291948.m1TJmI5I092594@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 136474 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Feb 2008 19:48:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=136474 Change 136474 by kmacy@kmacy:entropy:iwarp on 2008/02/29 04:24:55 IFC 136473 Affected files ... .. //depot/projects/iwarp/games/fortune/datfiles/fortunes#6 integrate .. //depot/projects/iwarp/include/unistd.h#4 integrate .. //depot/projects/iwarp/lib/libarchive/archive_endian.h#2 integrate .. //depot/projects/iwarp/lib/libarchive/archive_read_support_format_zip.c#4 integrate .. //depot/projects/iwarp/lib/libarchive/archive_write_disk.c#4 integrate .. //depot/projects/iwarp/lib/libc/gen/sysconf.c#2 integrate .. //depot/projects/iwarp/lib/libc/stdio/fdopen.c#2 integrate .. //depot/projects/iwarp/lib/libc/stdio/fopen.c#2 integrate .. //depot/projects/iwarp/lib/libc/stdio/freopen.c#2 integrate .. //depot/projects/iwarp/lib/libc/stdlib/getenv.c#2 integrate .. //depot/projects/iwarp/lib/libc/sys/readlink.2#3 integrate .. //depot/projects/iwarp/lib/msun/src/e_rem_pio2.c#3 integrate .. //depot/projects/iwarp/lib/msun/src/e_rem_pio2f.c#3 integrate .. //depot/projects/iwarp/sbin/fsck_ffs/pass1.c#2 integrate .. //depot/projects/iwarp/sbin/fsck_ffs/pass2.c#2 integrate .. //depot/projects/iwarp/sbin/fsck_ffs/setup.c#2 integrate .. //depot/projects/iwarp/sbin/ipfw/ipfw.8#6 integrate .. //depot/projects/iwarp/sbin/ipfw/ipfw2.c#6 integrate .. //depot/projects/iwarp/share/man/man4/uscanner.4#2 integrate .. //depot/projects/iwarp/share/man/man9/Makefile#8 integrate .. //depot/projects/iwarp/share/man/man9/insmntque.9#1 branch .. //depot/projects/iwarp/share/man/man9/vfs_mountedfrom.9#1 branch .. //depot/projects/iwarp/share/man/man9/vgone.9#2 integrate .. //depot/projects/iwarp/share/man/man9/vhold.9#2 integrate .. //depot/projects/iwarp/share/man/man9/vput.9#2 integrate .. //depot/projects/iwarp/share/man/man9/vref.9#2 integrate .. //depot/projects/iwarp/share/man/man9/vrefcnt.9#1 branch .. //depot/projects/iwarp/share/man/man9/vrele.9#2 integrate .. //depot/projects/iwarp/share/misc/bsd-family-tree#5 integrate .. //depot/projects/iwarp/share/misc/committers-doc.dot#3 integrate .. //depot/projects/iwarp/share/misc/committers-ports.dot#4 integrate .. //depot/projects/iwarp/sys/arm/include/_bus.h#2 integrate .. //depot/projects/iwarp/sys/arm/xscale/ixp425/ixp425.c#2 integrate .. //depot/projects/iwarp/sys/boot/i386/boot2/boot2.c#3 integrate .. //depot/projects/iwarp/sys/boot/i386/btx/btx/Makefile#2 integrate .. //depot/projects/iwarp/sys/boot/i386/btx/btx/btx.S#2 integrate .. //depot/projects/iwarp/sys/boot/i386/gptboot/gptboot.c#2 integrate .. //depot/projects/iwarp/sys/boot/i386/libi386/biosdisk.c#4 integrate .. //depot/projects/iwarp/sys/boot/pc98/btx/btx/Makefile#2 integrate .. //depot/projects/iwarp/sys/boot/pc98/btx/btx/btx.S#2 integrate .. //depot/projects/iwarp/sys/cam/cam_xpt.c#5 integrate .. //depot/projects/iwarp/sys/conf/NOTES#8 integrate .. //depot/projects/iwarp/sys/conf/files#11 integrate .. //depot/projects/iwarp/sys/conf/ldscript.powerpc#2 integrate .. //depot/projects/iwarp/sys/dev/cxgb/cxgb_main.c#21 integrate .. //depot/projects/iwarp/sys/dev/drm/drm_pciids.h#2 integrate .. //depot/projects/iwarp/sys/dev/md/md.c#5 integrate .. //depot/projects/iwarp/sys/dev/msk/if_msk.c#6 integrate .. //depot/projects/iwarp/sys/dev/msk/if_mskreg.h#4 integrate .. //depot/projects/iwarp/sys/dev/usb/ubsa.c#2 integrate .. //depot/projects/iwarp/sys/dev/usb/usbdevs#9 integrate .. //depot/projects/iwarp/sys/dev/usb/uscanner.c#2 integrate .. //depot/projects/iwarp/sys/fs/coda/TODO#3 integrate .. //depot/projects/iwarp/sys/fs/fdescfs/fdesc_vnops.c#3 integrate .. //depot/projects/iwarp/sys/gdb/gdb_main.c#2 integrate .. //depot/projects/iwarp/sys/geom/part/g_part_mbr.c#2 integrate .. //depot/projects/iwarp/sys/i386/cpufreq/est.c#2 integrate .. //depot/projects/iwarp/sys/i386/i386/identcpu.c#3 integrate .. //depot/projects/iwarp/sys/kern/vnode_if.src#4 integrate .. //depot/projects/iwarp/sys/netinet/ip_dummynet.c#5 integrate .. //depot/projects/iwarp/sys/powerpc/aim/locore.S#2 integrate .. //depot/projects/iwarp/sys/powerpc/powerpc/genassym.c#3 integrate .. //depot/projects/iwarp/sys/security/audit/audit_worker.c#4 integrate .. //depot/projects/iwarp/sys/vm/vm_object.c#6 integrate .. //depot/projects/iwarp/usr.bin/awk/Makefile#3 integrate .. //depot/projects/iwarp/usr.bin/calendar/calendars/calendar.freebsd#6 integrate .. //depot/projects/iwarp/usr.sbin/pkg_install/add/main.c#3 integrate Differences ... ==== //depot/projects/iwarp/games/fortune/datfiles/fortunes#6 (text+ko) ==== @@ -1,5 +1,5 @@ This fortune brought to you by: -$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.255 2008/01/10 14:51:24 des Exp $ +$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.257 2008/02/28 15:16:24 yar Exp $ % ======================================================================= || || @@ -15979,6 +15979,9 @@ % Don't mind him; politicians always sound like that. % +Don't patch bad code -- rewrite it. + -- "The Elements of Programming Style", Kernighan and Plauger +% Don't plan any hasty moves. You'll be evicted soon anyway. % @@ -31243,7 +31246,7 @@ -- Charles Dickens % Let the machine do the dirty work. - -- "Elements of Programming Style", Kernighan and Ritchie + -- "The Elements of Programming Style", Kernighan and Plauger % Let the meek inherit the earth -- they have it coming to them. -- James Thurber ==== //depot/projects/iwarp/include/unistd.h#4 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)unistd.h 8.12 (Berkeley) 4/27/95 - * $FreeBSD: src/include/unistd.h,v 1.83 2008/02/12 20:09:03 ru Exp $ + * $FreeBSD: src/include/unistd.h,v 1.84 2008/02/26 20:33:52 ru Exp $ */ #ifndef _UNISTD_H_ @@ -405,7 +405,7 @@ /* 1003.1-2001 */ #if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE int fchown(int, uid_t, gid_t); -ssize_t readlink(const char *, char *, size_t); +ssize_t readlink(const char * __restrict, char * __restrict, size_t); #endif #if __POSIX_VISIBLE >= 200112 int gethostname(char *, size_t); ==== //depot/projects/iwarp/lib/libarchive/archive_endian.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libarchive/archive_endian.h,v 1.1 2008/01/03 18:30:37 des Exp $ + * $FreeBSD: src/lib/libarchive/archive_endian.h,v 1.2 2008/02/26 07:17:47 kientzle Exp $ * * Borrowed from FreeBSD's */ @@ -34,7 +34,7 @@ /* Alignment-agnostic encode/decode bytestream to/from little/big endian. */ static inline uint16_t -be16dec(const void *pp) +archive_be16dec(const void *pp) { unsigned char const *p = (unsigned char const *)pp; @@ -42,7 +42,7 @@ } static inline uint32_t -be32dec(const void *pp) +archive_be32dec(const void *pp) { unsigned char const *p = (unsigned char const *)pp; @@ -50,15 +50,15 @@ } static inline uint64_t -be64dec(const void *pp) +archive_be64dec(const void *pp) { unsigned char const *p = (unsigned char const *)pp; - return (((uint64_t)be32dec(p) << 32) | be32dec(p + 4)); + return (((uint64_t)archive_be32dec(p) << 32) | archive_be32dec(p + 4)); } static inline uint16_t -le16dec(const void *pp) +archive_le16dec(const void *pp) { unsigned char const *p = (unsigned char const *)pp; @@ -66,7 +66,7 @@ } static inline uint32_t -le32dec(const void *pp) +archive_le32dec(const void *pp) { unsigned char const *p = (unsigned char const *)pp; @@ -74,15 +74,15 @@ } static inline uint64_t -le64dec(const void *pp) +archive_le64dec(const void *pp) { unsigned char const *p = (unsigned char const *)pp; - return (((uint64_t)le32dec(p + 4) << 32) | le32dec(p)); + return (((uint64_t)archive_le32dec(p + 4) << 32) | archive_le32dec(p)); } static inline void -be16enc(void *pp, uint16_t u) +archive_be16enc(void *pp, uint16_t u) { unsigned char *p = (unsigned char *)pp; @@ -91,7 +91,7 @@ } static inline void -be32enc(void *pp, uint32_t u) +archive_be32enc(void *pp, uint32_t u) { unsigned char *p = (unsigned char *)pp; @@ -102,16 +102,16 @@ } static inline void -be64enc(void *pp, uint64_t u) +archive_be64enc(void *pp, uint64_t u) { unsigned char *p = (unsigned char *)pp; - be32enc(p, u >> 32); - be32enc(p + 4, u & 0xffffffff); + archive_be32enc(p, u >> 32); + archive_be32enc(p + 4, u & 0xffffffff); } static inline void -le16enc(void *pp, uint16_t u) +archive_le16enc(void *pp, uint16_t u) { unsigned char *p = (unsigned char *)pp; @@ -120,7 +120,7 @@ } static inline void -le32enc(void *pp, uint32_t u) +archive_le32enc(void *pp, uint32_t u) { unsigned char *p = (unsigned char *)pp; @@ -131,12 +131,12 @@ } static inline void -le64enc(void *pp, uint64_t u) +archive_le64enc(void *pp, uint64_t u) { unsigned char *p = (unsigned char *)pp; - le32enc(p, u & 0xffffffff); - le32enc(p + 4, u >> 32); + archive_le32enc(p, u & 0xffffffff); + archive_le32enc(p + 4, u >> 32); } #endif ==== //depot/projects/iwarp/lib/libarchive/archive_read_support_format_zip.c#4 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_zip.c,v 1.20 2008/01/15 16:27:15 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_zip.c,v 1.22 2008/02/27 06:05:59 kientzle Exp $"); #ifdef HAVE_ERRNO_H #include @@ -278,8 +278,8 @@ zip->version = p->version[0]; zip->system = p->version[1]; - zip->flags = le16dec(p->flags); - zip->compression = le16dec(p->compression); + zip->flags = archive_le16dec(p->flags); + zip->compression = archive_le16dec(p->compression); if (zip->compression < sizeof(compression_names)/sizeof(compression_names[0])) zip->compression_name = compression_names[zip->compression]; @@ -291,11 +291,11 @@ zip->mode = 0; zip->uid = 0; zip->gid = 0; - zip->crc32 = le32dec(p->crc32); - zip->filename_length = le16dec(p->filename_length); - zip->extra_length = le16dec(p->extra_length); - zip->uncompressed_size = le32dec(p->uncompressed_size); - zip->compressed_size = le32dec(p->compressed_size); + zip->crc32 = archive_le32dec(p->crc32); + zip->filename_length = archive_le16dec(p->filename_length); + zip->extra_length = archive_le16dec(p->extra_length); + zip->uncompressed_size = archive_le32dec(p->uncompressed_size); + zip->compressed_size = archive_le32dec(p->compressed_size); (a->decompressor->consume)(a, sizeof(struct zip_file_header)); @@ -397,9 +397,9 @@ "Truncated ZIP end-of-file record"); return (ARCHIVE_FATAL); } - zip->crc32 = le32dec(p + 4); - zip->compressed_size = le32dec(p + 8); - zip->uncompressed_size = le32dec(p + 12); + zip->crc32 = archive_le32dec(p + 4); + zip->compressed_size = archive_le32dec(p + 8); + zip->uncompressed_size = archive_le32dec(p + 12); (a->decompressor->consume)(a, 16); } @@ -636,7 +636,7 @@ { struct zip *zip; const void *buff = NULL; - ssize_t bytes_avail; + off_t bytes_skipped; zip = (struct zip *)(a->format->data); @@ -659,19 +659,10 @@ * If the length is at the beginning, we can skip the * compressed data much more quickly. */ - while (zip->entry_bytes_remaining > 0) { - bytes_avail = (a->decompressor->read_ahead)(a, &buff, 1); - if (bytes_avail <= 0) { - archive_set_error(&a->archive, - ARCHIVE_ERRNO_FILE_FORMAT, - "Truncated ZIP file body"); - return (ARCHIVE_FATAL); - } - if (bytes_avail > zip->entry_bytes_remaining) - bytes_avail = zip->entry_bytes_remaining; - (a->decompressor->consume)(a, bytes_avail); - zip->entry_bytes_remaining -= bytes_avail; - } + bytes_skipped = (a->decompressor->skip)(a, zip->entry_bytes_remaining); + if (bytes_skipped < 0) + return (ARCHIVE_FATAL); + /* This entry is finished and done. */ zip->end_of_entry_cleanup = zip->end_of_entry = 1; return (ARCHIVE_OK); @@ -707,8 +698,8 @@ const char *p = (const char *)extra; while (offset < zip->extra_length - 4) { - unsigned short headerid = le16dec(p + offset); - unsigned short datasize = le16dec(p + offset + 2); + unsigned short headerid = archive_le16dec(p + offset); + unsigned short datasize = archive_le16dec(p + offset + 2); offset += 4; if (offset + datasize > zip->extra_length) break; @@ -720,9 +711,9 @@ case 0x0001: /* Zip64 extended information extra field. */ if (datasize >= 8) - zip->uncompressed_size = le64dec(p + offset); + zip->uncompressed_size = archive_le64dec(p + offset); if (datasize >= 16) - zip->compressed_size = le64dec(p + offset + 8); + zip->compressed_size = archive_le64dec(p + offset + 8); break; case 0x5455: { @@ -735,11 +726,12 @@ { #ifdef DEBUG fprintf(stderr, "mtime: %lld -> %d\n", - (long long)zip->mtime, le32dec(p + offset)); + (long long)zip->mtime, + archive_le32dec(p + offset)); #endif if (datasize < 4) break; - zip->mtime = le32dec(p + offset); + zip->mtime = archive_le32dec(p + offset); offset += 4; datasize -= 4; } @@ -747,7 +739,7 @@ { if (datasize < 4) break; - zip->atime = le32dec(p + offset); + zip->atime = archive_le32dec(p + offset); offset += 4; datasize -= 4; } @@ -755,7 +747,7 @@ { if (datasize < 4) break; - zip->ctime = le32dec(p + offset); + zip->ctime = archive_le32dec(p + offset); offset += 4; datasize -= 4; } @@ -765,12 +757,13 @@ /* Info-ZIP Unix Extra Field (type 2) "Ux". */ #ifdef DEBUG fprintf(stderr, "uid %d gid %d\n", - le16dec(p + offset), le16dec(p + offset + 2)); + archive_le16dec(p + offset), + archive_le16dec(p + offset + 2)); #endif if (datasize >= 2) - zip->uid = le16dec(p + offset); + zip->uid = archive_le16dec(p + offset); if (datasize >= 4) - zip->gid = le16dec(p + offset + 2); + zip->gid = archive_le16dec(p + offset + 2); break; default: break; ==== //depot/projects/iwarp/lib/libarchive/archive_write_disk.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk.c,v 1.22 2008/02/19 05:39:35 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk.c,v 1.23 2008/02/27 06:16:41 kientzle Exp $"); #ifdef HAVE_SYS_TYPES_H #include @@ -1167,7 +1167,7 @@ struct stat st; /* - * Gaurd against symlink tricks. Reject any archive entry whose + * Guard against symlink tricks. Reject any archive entry whose * destination would be altered by a symlink. */ /* Whatever we checked last time doesn't need to be re-checked. */ ==== //depot/projects/iwarp/lib/libc/gen/sysconf.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)sysconf.c 8.2 (Berkeley) 3/20/94"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/sysconf.c,v 1.25 2007/04/14 13:06:57 pjd Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/sysconf.c,v 1.26 2008/02/27 05:56:57 wollman Exp $"); #include #include @@ -100,7 +100,16 @@ mib[1] = KERN_NGROUPS; break; case _SC_OPEN_MAX: - case _SC_STREAM_MAX: /* assume fds run out before memory does */ + if (getrlimit(RLIMIT_NOFILE, &rl) != 0) + return (-1); + if (rl.rlim_cur == RLIM_INFINITY) + return (-1); + if (rl.rlim_cur > LONG_MAX) { + errno = EOVERFLOW; + return (-1); + } + return ((long)rl.rlim_cur); + case _SC_STREAM_MAX: if (getrlimit(RLIMIT_NOFILE, &rl) != 0) return (-1); if (rl.rlim_cur == RLIM_INFINITY) @@ -109,6 +118,15 @@ errno = EOVERFLOW; return (-1); } + /* + * struct __sFILE currently has a limitation that + * file descriptors must fit in a signed short. + * This doesn't precisely capture the letter of POSIX + * but approximates the spirit. + */ + if (rl.rlim_cur > SHRT_MAX) + return (SHRT_MAX); + return ((long)rl.rlim_cur); case _SC_JOB_CONTROL: return (_POSIX_JOB_CONTROL); ==== //depot/projects/iwarp/lib/libc/stdio/fdopen.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)fdopen.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/fdopen.c,v 1.8 2007/01/09 00:28:06 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/fdopen.c,v 1.10 2008/02/27 21:25:19 jhb Exp $"); #include "namespace.h" #include @@ -42,6 +42,7 @@ #include #include #include +#include #include "un-namespace.h" #include "local.h" @@ -57,6 +58,18 @@ if (nofile == 0) nofile = getdtablesize(); + /* + * File descriptors are a full int, but _file is only a short. + * If we get a valid file descriptor that is greater than + * SHRT_MAX, then the fd will get sign-extended into an + * invalid file descriptor. Handle this case by failing the + * open. + */ + if (fd > SHRT_MAX) { + errno = EMFILE; + return (NULL); + } + if ((flags = __sflags(mode, &oflags)) == 0) return (NULL); ==== //depot/projects/iwarp/lib/libc/stdio/fopen.c#2 (text+ko) ==== @@ -34,14 +34,16 @@ static char sccsid[] = "@(#)fopen.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/fopen.c,v 1.11 2007/01/09 00:28:06 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/fopen.c,v 1.13 2008/02/27 21:25:19 jhb Exp $"); #include "namespace.h" #include #include #include +#include #include #include +#include #include "un-namespace.h" #include "local.h" @@ -63,6 +65,18 @@ fp->_flags = 0; /* release */ return (NULL); } + /* + * File descriptors are a full int, but _file is only a short. + * If we get a valid file descriptor that is greater than + * SHRT_MAX, then the fd will get sign-extended into an + * invalid file descriptor. Handle this case by failing the + * open. + */ + if (f > SHRT_MAX) { + _close(f); + errno = EMFILE; + return (NULL); + } fp->_file = f; fp->_flags = flags; fp->_cookie = fp; ==== //depot/projects/iwarp/lib/libc/stdio/freopen.c#2 (text+ko) ==== @@ -34,13 +34,14 @@ static char sccsid[] = "@(#)freopen.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/stdio/freopen.c,v 1.18 2007/01/09 00:28:06 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/stdio/freopen.c,v 1.20 2008/02/27 21:25:19 jhb Exp $"); #include "namespace.h" #include #include #include #include +#include #include #include #include @@ -203,6 +204,20 @@ } } + /* + * File descriptors are a full int, but _file is only a short. + * If we get a valid file descriptor that is greater than + * SHRT_MAX, then the fd will get sign-extended into an + * invalid file descriptor. Handle this case by failing the + * open. + */ + if (f > SHRT_MAX) { + fp->_flags = 0; /* set it free */ + FUNLOCKFILE(fp); + errno = EMFILE; + return (NULL); + } + fp->_flags = flags; fp->_file = f; fp->_cookie = fp; ==== //depot/projects/iwarp/lib/libc/stdlib/getenv.c#2 (text+ko) ==== @@ -23,23 +23,25 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + +#include +__FBSDID("$FreeBSD: src/lib/libc/stdlib/getenv.c,v 1.13 2008/02/28 04:09:08 scf Exp $"); + + +#include "namespace.h" #include -#include #include #include #include #include #include +#include +#include "un-namespace.h" -#include -__FBSDID("$FreeBSD: src/lib/libc/stdlib/getenv.c,v 1.12 2007/09/22 02:30:44 scf Exp $"); - - -static const char CorruptEnvFindMsg[] = - "environment corrupt; unable to find %.*s"; +static const char CorruptEnvFindMsg[] = "environment corrupt; unable to find "; static const char CorruptEnvValueMsg[] = - "environment corrupt; missing value for %s"; + "environment corrupt; missing value for "; /* @@ -97,6 +99,26 @@ /* + * A simple version of warnx() to avoid the bloat of including stdio in static + * binaries. + */ +static void +__env_warnx(const char *msg, const char *name, size_t nameLen) +{ + static const char nl[] = "\n"; + static const char progSep[] = ": "; + + _write(STDERR_FILENO, _getprogname(), strlen(_getprogname())); + _write(STDERR_FILENO, progSep, sizeof(progSep) - 1); + _write(STDERR_FILENO, msg, strlen(msg)); + _write(STDERR_FILENO, name, nameLen); + _write(STDERR_FILENO, nl, sizeof(nl) - 1); + + return; +} + + +/* * Inline strlen() for performance. Also, perform check for an equals sign. * Cheaper here than peforming a strchr() later. */ @@ -341,7 +363,8 @@ envVars[envNdx].valueSize = strlen(envVars[envNdx].value); } else { - warnx(CorruptEnvValueMsg, envVars[envNdx].name); + __env_warnx(CorruptEnvValueMsg, envVars[envNdx].name, + strlen(envVars[envNdx].name)); errno = EFAULT; goto Failure; } @@ -356,8 +379,8 @@ activeNdx = envVarsTotal - 1; if (__findenv(envVars[envNdx].name, nameLen, &activeNdx, false) == NULL) { - warnx(CorruptEnvFindMsg, (int)nameLen, - envVars[envNdx].name); + __env_warnx(CorruptEnvFindMsg, envVars[envNdx].name, + nameLen); errno = EFAULT; goto Failure; } @@ -527,7 +550,8 @@ if (origEnviron != NULL) for (env = origEnviron; *env != NULL; env++) { if ((equals = strchr(*env, '=')) == NULL) { - warnx(CorruptEnvValueMsg, *env); + __env_warnx(CorruptEnvValueMsg, *env, + strlen(*env)); errno = EFAULT; return (-1); } ==== //depot/projects/iwarp/lib/libc/sys/readlink.2#3 (text+ko) ==== @@ -26,9 +26,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)readlink.2 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/sys/readlink.2,v 1.15 2008/02/12 20:09:03 ru Exp $ +.\" $FreeBSD: src/lib/libc/sys/readlink.2,v 1.16 2008/02/26 20:33:52 ru Exp $ .\" -.Dd February 12, 2008 +.Dd February 26, 2008 .Dt READLINK 2 .Os .Sh NAME @@ -39,7 +39,7 @@ .Sh SYNOPSIS .In unistd.h .Ft ssize_t -.Fn readlink "const char *path" "char *buf" "size_t bufsiz" +.Fn readlink "const char *restrict path" "char *restrict buf" "size_t bufsiz" .Sh DESCRIPTION The .Fn readlink ==== //depot/projects/iwarp/lib/msun/src/e_rem_pio2.c#3 (text+ko) ==== @@ -14,7 +14,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/msun/src/e_rem_pio2.c,v 1.17 2008/02/25 18:28:58 bde Exp $"); +__FBSDID("$FreeBSD: src/lib/msun/src/e_rem_pio2.c,v 1.18 2008/02/28 16:22:36 bde Exp $"); /* __ieee754_rem_pio2(x,y) * @@ -126,7 +126,7 @@ } } } - if(ix<=0x413921fb) { /* |x| ~<= 2^19*(pi/2), medium size */ + if(ix<0x413921fb) { /* |x| ~< 2^20*(pi/2), medium size */ medium: /* Use a specialized rint() to get fn. Assume round-to-nearest. */ STRICT_ASSIGN(double,fn,x*invpio2+0x1.8p52); ==== //depot/projects/iwarp/lib/msun/src/e_rem_pio2f.c#3 (text+ko) ==== @@ -15,7 +15,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/msun/src/e_rem_pio2f.c,v 1.28 2008/02/25 22:19:17 bde Exp $"); +__FBSDID("$FreeBSD: src/lib/msun/src/e_rem_pio2f.c,v 1.29 2008/02/28 16:22:36 bde Exp $"); /* __ieee754_rem_pio2f(x,y) * @@ -38,8 +38,8 @@ static const double half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ -pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */ -pio2_1t = 6.07710050650619224932e-11; /* 0x3DD0B461, 0x1A626331 */ +pio2_1 = 1.57079631090164184570e+00, /* 0x3FF921FB, 0x50000000 */ +pio2_1t = 1.58932547735281966916e-08; /* 0x3E5110b4, 0x611A6263 */ #ifdef INLINE_REM_PIO2F extern inline @@ -55,7 +55,7 @@ GET_FLOAT_WORD(hx,x); ix = hx&0x7fffffff; /* 33+53 bit pi is good enough for medium size */ - if(ix<=0x49490f80) { /* |x| ~<= 2^19*(pi/2), medium size */ + if(ix<0x4dc90fdb) { /* |x| ~< 2^28*(pi/2), medium size */ /* Use a specialized rint() to get fn. Assume round-to-nearest. */ STRICT_ASSIGN(double,fn,x*invpio2+0x1.8p52); fn = fn-0x1.8p52; ==== //depot/projects/iwarp/sbin/fsck_ffs/pass1.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/sbin/fsck_ffs/pass1.c,v 1.43 2004/10/08 20:44:47 truckman Exp $"); +__FBSDID("$FreeBSD: src/sbin/fsck_ffs/pass1.c,v 1.44 2008/02/26 03:08:22 delphij Exp $"); #include #include @@ -93,9 +93,11 @@ inumber = c * sblock.fs_ipg; setinodebuf(inumber); getblk(&cgblk, cgtod(&sblock, c), sblock.fs_cgsize); - if (sblock.fs_magic == FS_UFS2_MAGIC) + if (sblock.fs_magic == FS_UFS2_MAGIC) { inosused = cgrp.cg_initediblk; - else + if (inosused > sblock.fs_ipg) + inosused = sblock.fs_ipg; + } else inosused = sblock.fs_ipg; if (got_siginfo) { printf("%s: phase 1: cyl group %d of %d (%d%%)\n", ==== //depot/projects/iwarp/sbin/fsck_ffs/pass2.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/sbin/fsck_ffs/pass2.c,v 1.26 2004/10/08 20:44:47 truckman Exp $"); +__FBSDID("$FreeBSD: src/sbin/fsck_ffs/pass2.c,v 1.27 2008/02/26 03:05:48 delphij Exp $"); #include @@ -242,6 +242,8 @@ /* * check for "." */ + if (dirp->d_ino > maxino) + goto chk2; if (idesc->id_entryno != 0) goto chk1; if (dirp->d_ino != 0 && strcmp(dirp->d_name, ".") == 0) { ==== //depot/projects/iwarp/sbin/fsck_ffs/setup.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/sbin/fsck_ffs/setup.c,v 1.50 2006/10/31 22:06:56 pjd Exp $"); +__FBSDID("$FreeBSD: src/sbin/fsck_ffs/setup.c,v 1.51 2008/02/26 03:03:17 delphij Exp $"); #include #include @@ -349,7 +349,7 @@ sblock.fs_sblockloc == sblock_try[i])) && sblock.fs_ncg >= 1 && sblock.fs_bsize >= MINBSIZE && - sblock.fs_bsize >= sizeof(struct fs)) + sblock.fs_sbsize >= roundup(sizeof(struct fs), dev_bsize)) break; } if (sblock_try[i] == -1) { ==== //depot/projects/iwarp/sbin/ipfw/ipfw.8#6 (text+ko) ==== @@ -1,5 +1,5 @@ .\" -.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.210 2008/02/24 15:37:45 piso Exp $ +.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.211 2008/02/27 13:52:33 dwmalone Exp $ .\" .Dd November 26, 2007 .Dt IPFW 8 @@ -1971,6 +1971,13 @@ Even worse effects can result if you get packets from an interface with a much larger MTU, e.g.\& the loopback interface with its 16KB packets. +The +.Xr sysctl 8 +variables +.Em net.inet.ip.dummynet.pipe_byte_limit +and +.Em net.inet.ip.dummynet.pipe_slot_limit +control the maximum lengths that can be specified. .Pp .It Cm red | gred Ar w_q Ns / Ns Ar min_th Ns / Ns Ar max_th Ns / Ns Ar max_p Make use of the RED (Random Early Detection) queue management algorithm. @@ -2190,6 +2197,13 @@ .It Va net.inet.ip.dummynet.red_max_pkt_size : No 1500 Parameters used in the computations of the drop probability for the RED algorithm. +.It Va net.inet.ip.dummynet.pipe_byte_limit : No 1048576 +.It Va net.inet.ip.dummynet.pipe_slot_limit : No 100 +The maximum queue size that can be specified in bytes or packets. +These limits prevent accidental exhaustion of resources such as mbufs. +If you raise these limits, +you should make sure the system is configured so that sufficient resources +are available. .It Va net.inet.ip.fw.autoinc_step : No 100 Delta between rule numbers when auto-generating them. The value must be in the range 1..1000. ==== //depot/projects/iwarp/sbin/ipfw/ipfw2.c#6 (text+ko) ==== @@ -17,7 +17,7 @@ * * NEW command line interface for IP firewall facility * - * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.117 2008/02/24 15:37:45 piso Exp $ + * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.118 2008/02/27 13:52:33 dwmalone Exp $ */ #include @@ -4341,11 +4341,25 @@ errx(EX_DATAERR, "weight must be <= 100"); } if (p.fs.flags_fs & DN_QSIZE_IS_BYTES) { - if (p.fs.qsize > 1024*1024) - errx(EX_DATAERR, "queue size must be < 1MB"); + size_t len; + long limit; + + len = sizeof(limit); + if (sysctlbyname("net.inet.ip.dummynet.pipe_byte_limit", + &limit, &len, NULL, 0) == -1) + limit = 1024*1024; + if (p.fs.qsize > limit) + errx(EX_DATAERR, "queue size must be < %ldB", limit); } else { - if (p.fs.qsize > 100) - errx(EX_DATAERR, "2 <= queue size <= 100"); + size_t len; + long limit; + + len = sizeof(limit); + if (sysctlbyname("net.inet.ip.dummynet.pipe_slot_limit", + &limit, &len, NULL, 0) == -1) + limit = 100; + if (p.fs.qsize > limit) + errx(EX_DATAERR, "2 <= queue size <= %ld", limit); } if (p.fs.flags_fs & DN_IS_RED) { size_t len; @@ -4363,7 +4377,6 @@ len = sizeof(int); if (sysctlbyname("net.inet.ip.dummynet.red_lookup_depth", &lookup_depth, &len, NULL, 0) == -1) - errx(1, "sysctlbyname(\"%s\")", "net.inet.ip.dummynet.red_lookup_depth"); if (lookup_depth == 0) ==== //depot/projects/iwarp/share/man/man4/uscanner.4#2 (text+ko) ==== @@ -28,9 +28,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/uscanner.4,v 1.31 2007/10/05 15:17:14 luigi Exp $ +.\" $FreeBSD: src/share/man/man4/uscanner.4,v 1.32 2008/02/27 10:57:51 remko Exp $ .\" -.Dd October 5, 2007 +.Dd February 27, 2008 .Dt USCANNER 4 .Os .Sh NAME @@ -103,8 +103,8 @@ .It Epson: GT-8400UF, GT-9300UF, GT-9700F; .It -Epson Stylus: Photo RX425, CX3650, DX-5000, DX-5050, DX-6000, DX-6050 -(and possibly more in the CX-5000 and DX-3800..DX-7000 family); +Epson Stylus: Photo RX425, CX3650, DX-5000, DX-5050, CX5400, DX-6000, +DX-6050 (and possibly more in the CX-5000 and DX-3800..DX-7000 family); .It Hewlett Packard: Photosmart S20 .It ==== //depot/projects/iwarp/share/man/man9/Makefile#8 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.326 2008/02/13 21:54:16 attilio Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.330 2008/02/26 21:40:30 davidc Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -124,6 +124,7 @@ ieee80211_radiotap.9 \ ifnet.9 \ inittodr.9 \ + insmntque.9 \ intro.9 \ ithread.9 \ KASSERT.9 \ @@ -253,6 +254,7 @@ VFS_LOCK_GIANT.9 \ VFS_MOUNT.9 \ vfs_mount.9 \ + vfs_mountedfrom.9 \ vfs_mountedon.9 \ VFS_QUOTACTL.9 \ VFS_ROOT.9 \ @@ -349,6 +351,7 @@ VOP_VPTOFH.9 \ vput.9 \ vref.9 \ + vrefcnt.9 \ vrele.9 \ vslock.9 \ watchdog.9 \ @@ -1228,6 +1231,7 @@ MLINKS+=VFS_LOCK_GIANT.9 VFS_UNLOCK_GIANT.9 MLINKS+=vgone.9 vgonel.9 MLINKS+=vhold.9 vdrop.9 \ + vhold.9 vholdl.9 \ vhold.9 vdropl.9 MLINKS+=vm_map_lock.9 vm_map_lock_downgrade.9 \ vm_map_lock.9 vm_map_lock_read.9 \ ==== //depot/projects/iwarp/share/man/man9/vgone.9#2 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<<