Date: Fri, 7 Feb 2003 09:36:58 -0600 From: "Jacques A. Vidrine" <nectar@FreeBSD.org> To: Daniel Ellard <ellard@eecs.harvard.edu> Cc: freebsd-hackers@freebsd.org Subject: Re: finding changes from one release/patch level to another? Message-ID: <20030207153658.GB90222@opus.celabo.org> In-Reply-To: <Pine.BSF.4.51.0302070917530.19912@bowser.eecs.harvard.edu> References: <Pine.BSF.4.51.0302070917530.19912@bowser.eecs.harvard.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
--wRRV7LY7NUeQGEoC Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Feb 07, 2003 at 09:26:49AM -0500, Daniel Ellard wrote: > > Something slightly broke the em (gigabit ethernet) driver between > 4.6.2p4 and 4.6.2p6, and I'm trying to figure what the change was so I > can back it out on my machine. In 4.6.2p6 almost everything works, > but programs that push the device (such as netperf) can hang. The > same program running on other ethernet devices (fxp, xl) works fine. > This happens on several machines, and they were all running correctly > before I updated them, so I doubt that it is a hardware problem. > > I don't see any changes for the em driver source itself between p4 and > p6, and the announced differences between these patch levels don't > look related, but something must have changed. It seems awfully unlikely that the changes between 4.6.2p4 and 4.6.2p6 have anything to do with your problem. I think you are probably barking up the wrong tree. > Is there a > straightforward way to track down all the source code differences > between p4 and p6 (or any arbitrary pair of patchlevels)? Check out the RELENG_4_6 branch. Then run e.g. cvs -q diff -j 'RELENG_4_6:2002/10/28' -j 'RELENG_4_6:2003/01/08' Output attached to save you the trouble. Cheers, -- Jacques A. Vidrine <nectar@celabo.org> http://www.celabo.org/ NTT/Verio SME . FreeBSD UNIX . Heimdal Kerberos jvidrine@verio.net . nectar@FreeBSD.org . nectar@kth.se --wRRV7LY7NUeQGEoC Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="freebsd-4.6.2p4-p6.diff" Index: UPDATING =================================================================== RCS file: /home/ncvs/src/UPDATING,v retrieving revision 1.73.2.68.2.30 retrieving revision 1.73.2.68.2.32 diff -c -r1.73.2.68.2.30 -r1.73.2.68.2.32 *** UPDATING 26 Oct 2002 21:11:30 -0000 1.73.2.68.2.30 --- UPDATING 6 Jan 2003 12:38:21 -0000 1.73.2.68.2.32 *************** *** 17,29 **** updates that don't have an advisory, or to be safe, you can do a full build and install as described in the COMMON ITEMS section. ! 20021026: p4 smrsh bypass bug. ! 20021023: p3 Correct kadmind buffer overflow. ! 20020911: p2 The kvm_openfiles/kvm_open functions now mark the returned file descriptors close-on-exec in case set-user-ID/set-group-ID applications are careless. --- 17,35 ---- updates that don't have an advisory, or to be safe, you can do a full build and install as described in the COMMON ITEMS section. ! 20030106: p6 FreeBSD-SA-02:44.filedesc ! Correct a reference counting bug in fpathconf(2). ! ! 20021113: p5 FreeBSD-SA-02:43.bind ! Correct name server vulnerabilities. ! ! 20021026: p4 FreeBSD-SA-02:41.smrsh smrsh bypass bug. ! 20021023: p3 FreeBSD-SA-02:40.kadmind Correct kadmind buffer overflow. ! 20020911: p2 FreeBSD-SA-02:39.libkvm The kvm_openfiles/kvm_open functions now mark the returned file descriptors close-on-exec in case set-user-ID/set-group-ID applications are careless. *************** *** 1191,1194 **** If you find this document useful, and you want to, you may buy the author a beer. ! $FreeBSD: src/UPDATING,v 1.73.2.68.2.30 2002/10/26 21:11:30 gshapiro Exp $ --- 1197,1200 ---- If you find this document useful, and you want to, you may buy the author a beer. ! $FreeBSD: src/UPDATING,v 1.73.2.68.2.32 2003/01/06 12:38:21 nectar Exp $ Index: contrib/bind/CHANGES =================================================================== RCS file: /home/ncvs/src/contrib/bind/CHANGES,v retrieving revision 1.1.1.7.2.6.2.1 retrieving revision 1.1.1.7.2.6.2.2 diff -c -r1.1.1.7.2.6.2.1 -r1.1.1.7.2.6.2.2 *** contrib/bind/CHANGES 15 Jul 2002 07:51:02 -0000 1.1.1.7.2.6.2.1 --- contrib/bind/CHANGES 14 Nov 2002 03:18:40 -0000 1.1.1.7.2.6.2.2 *************** *** 1,3 **** --- 1,23 ---- + 1469. [bug] buffer length calculation for PX was wrong. + + 1468. [bug] ns_name_ntol() could overwite a zero length buffer. + + 1467. [bug] off by one bug in ns_makecannon(). + + 1466. [bug] large ENDS UDP buffer size could trigger a assertion. + + 1465. [bug] possible NULL pointer dereference in db_sec.c + + 1464. [bug] the buffer used to construct the -ve record was not + big enough for all possible SOA records. use pointer + arithmetic to calculate the remaining size in this + buffer. + + 1463. [bug] use serial space arithmetic to determine if a SIG is + too old, in the future or has internally constistant + times. + + 1462. [bug] write buffer overflow in make_rr(). --- 8.3.3-REL released --- (Wed Jun 26 21:15:43 PDT 2002) Index: contrib/bind/bin/named/db_defs.h =================================================================== RCS file: /home/ncvs/src/contrib/bind/bin/named/db_defs.h,v retrieving revision 1.1.1.2.2.4.2.1 retrieving revision 1.1.1.2.2.4.2.2 diff -c -r1.1.1.2.2.4.2.1 -r1.1.1.2.2.4.2.2 *** contrib/bind/bin/named/db_defs.h 15 Jul 2002 07:51:12 -0000 1.1.1.2.2.4.2.1 --- contrib/bind/bin/named/db_defs.h 14 Nov 2002 03:18:40 -0000 1.1.1.2.2.4.2.2 *************** *** 78,84 **** */ /* max length of data in RR data field */ ! #define MAXDATA (2*MAXDNAME + 5*INT32SZ) /* max length of data in a TXT RR segment */ #define MAXCHARSTRING 255 --- 78,84 ---- */ /* max length of data in RR data field */ ! #define MAXDATA (3*MAXDNAME + 5*INT32SZ) /* max length of data in a TXT RR segment */ #define MAXCHARSTRING 255 Index: contrib/bind/bin/named/db_sec.c =================================================================== RCS file: /home/ncvs/src/contrib/bind/bin/named/db_sec.c,v retrieving revision 1.1.1.1.4.3 retrieving revision 1.1.1.1.4.3.2.1 diff -c -r1.1.1.1.4.3 -r1.1.1.1.4.3.2.1 *** contrib/bind/bin/named/db_sec.c 17 Feb 2002 15:48:38 -0000 1.1.1.1.4.3 --- contrib/bind/bin/named/db_sec.c 14 Nov 2002 03:18:40 -0000 1.1.1.1.4.3.2.1 *************** *** 479,485 **** struct sig_record *sigdata; struct dnode *sigdn; struct databuf *sigdp; ! time_t now; char *signer; u_char name_n[MAXDNAME]; u_char *sig, *eom; --- 479,487 ---- struct sig_record *sigdata; struct dnode *sigdn; struct databuf *sigdp; ! u_int32_t now; ! u_int32_t exptime; ! u_int32_t signtime; char *signer; u_char name_n[MAXDNAME]; u_char *sig, *eom; *************** *** 492,497 **** --- 494,500 ---- int dnssec_failed = 0, dnssec_succeeded = 0; int return_value; int i; + int expired = 0; if (rrset == NULL || rrset->rr_name == NULL) { ns_warning (ns_log_default, "verify_set: missing rrset/name"); *************** *** 527,537 **** * Don't verify a set if the SIG inception time is in * the future. This should be fixed before 2038 (BEW) */ ! if ((time_t)ntohl(sigdata->sig_time_n) > now) continue; /* An expired set is dropped, but the data is not. */ ! if ((time_t)ntohl(sigdata->sig_exp_n) < now) { db_detach(&sigdn->dp); sigdp = NULL; continue; --- 530,543 ---- * Don't verify a set if the SIG inception time is in * the future. This should be fixed before 2038 (BEW) */ ! signtime = ntohl(sigdata->sig_time_n); ! if (SEQ_GT(signtime, now)) continue; /* An expired set is dropped, but the data is not. */ ! exptime = ntohl(sigdata->sig_exp_n); ! if (SEQ_GT(now, exptime)) { ! expired++; db_detach(&sigdn->dp); sigdp = NULL; continue; *************** *** 723,729 **** } end: ! if (dnssec_failed > 0) rrset_trim_sigs(rrset); if (trustedkey == 0 && key != NULL) dst_free_key(key); --- 729,735 ---- } end: ! if (dnssec_failed > 0 || expired > 0) rrset_trim_sigs(rrset); if (trustedkey == 0 && key != NULL) dst_free_key(key); Index: contrib/bind/bin/named/ns_defs.h =================================================================== RCS file: /home/ncvs/src/contrib/bind/bin/named/ns_defs.h,v retrieving revision 1.1.1.3.2.5.2.1 retrieving revision 1.1.1.3.2.5.2.2 diff -c -r1.1.1.3.2.5.2.1 -r1.1.1.3.2.5.2.2 *** contrib/bind/bin/named/ns_defs.h 15 Jul 2002 07:51:12 -0000 1.1.1.3.2.5.2.1 --- contrib/bind/bin/named/ns_defs.h 14 Nov 2002 03:18:40 -0000 1.1.1.3.2.5.2.2 *************** *** 469,475 **** q_cmsglen, /* len of cname message */ q_cmsgsize; /* allocated size of cname message */ int16_t q_dfd; /* UDP file descriptor */ ! int16_t q_udpsize; /* UDP message size */ int q_distance; /* distance this query is from the * original query that the server * received. */ --- 469,475 ---- q_cmsglen, /* len of cname message */ q_cmsgsize; /* allocated size of cname message */ int16_t q_dfd; /* UDP file descriptor */ ! u_int16_t q_udpsize; /* UDP message size */ int q_distance; /* distance this query is from the * original query that the server * received. */ Index: contrib/bind/bin/named/ns_ncache.c =================================================================== RCS file: /home/ncvs/src/contrib/bind/bin/named/ns_ncache.c,v retrieving revision 1.1.1.2.2.2 retrieving revision 1.1.1.2.2.2.2.1 diff -c -r1.1.1.2.2.2 -r1.1.1.2.2.2.2.1 *** contrib/bind/bin/named/ns_ncache.c 17 Feb 2002 15:48:38 -0000 1.1.1.2.2.2 --- contrib/bind/bin/named/ns_ncache.c 14 Nov 2002 03:18:40 -0000 1.1.1.2.2.2.2.1 *************** *** 66,72 **** u_int16_t atype; u_char *sp, *cp1; u_char data[MAXDATA]; ! size_t len = sizeof data; #endif nameserIncr(from.sin_addr, nssRcvdNXD); --- 66,72 ---- u_int16_t atype; u_char *sp, *cp1; u_char data[MAXDATA]; ! u_char *eod = data + sizeof(data); #endif nameserIncr(from.sin_addr, nssRcvdNXD); *************** *** 186,192 **** rdatap = cp; /* origin */ ! n = dn_expand(msg, msg + msglen, cp, (char*)data, len); if (n < 0) { ns_debug(ns_log_ncache, 3, "ncache: origin form error"); --- 186,192 ---- rdatap = cp; /* origin */ ! n = dn_expand(msg, msg + msglen, cp, (char*)data, eod - data); if (n < 0) { ns_debug(ns_log_ncache, 3, "ncache: origin form error"); *************** *** 195,203 **** cp += n; n = strlen((char*)data) + 1; cp1 = data + n; - len -= n; /* mail */ ! n = dn_expand(msg, msg + msglen, cp, (char*)cp1, len); if (n < 0) { ns_debug(ns_log_ncache, 3, "ncache: mail form error"); return; --- 195,202 ---- cp += n; n = strlen((char*)data) + 1; cp1 = data + n; /* mail */ ! n = dn_expand(msg, msg + msglen, cp, (char*)cp1, eod - cp1); if (n < 0) { ns_debug(ns_log_ncache, 3, "ncache: mail form error"); return; *************** *** 205,224 **** cp += n; n = strlen((char*)cp1) + 1; cp1 += n; - len -= n; n = 5 * INT32SZ; BOUNDS_CHECK(cp, n); memcpy(cp1, cp, n); /* serial, refresh, retry, expire, min */ cp1 += n; - len -= n; cp += n; if (cp != rdatap + dlen) { ns_debug(ns_log_ncache, 3, "ncache: form error"); return; } /* store the zone of the soa record */ ! n = dn_expand(msg, msg + msglen, sp, (char*)cp1, len); if (n < 0) { ns_debug(ns_log_ncache, 3, "ncache: form error 2"); return; --- 204,223 ---- cp += n; n = strlen((char*)cp1) + 1; cp1 += n; n = 5 * INT32SZ; + if (n > (eod - cp1)) /* Can't happen. See MAXDATA. */ + return; BOUNDS_CHECK(cp, n); memcpy(cp1, cp, n); /* serial, refresh, retry, expire, min */ cp1 += n; cp += n; if (cp != rdatap + dlen) { ns_debug(ns_log_ncache, 3, "ncache: form error"); return; } /* store the zone of the soa record */ ! n = dn_expand(msg, msg + msglen, sp, (char*)cp1, eod - cp1); if (n < 0) { ns_debug(ns_log_ncache, 3, "ncache: form error 2"); return; Index: contrib/bind/bin/named/ns_req.c =================================================================== RCS file: /home/ncvs/src/contrib/bind/bin/named/ns_req.c,v retrieving revision 1.1.1.2.2.9.2.1 retrieving revision 1.1.1.2.2.9.2.2 diff -c -r1.1.1.2.2.9.2.1 -r1.1.1.2.2.9.2.2 *** contrib/bind/bin/named/ns_req.c 15 Jul 2002 07:51:12 -0000 1.1.1.2.2.9.2.1 --- contrib/bind/bin/named/ns_req.c 14 Nov 2002 03:18:40 -0000 1.1.1.2.2.9.2.2 *************** *** 2195,2201 **** /* first just copy over the type_covered, algorithm, */ /* labels, orig ttl, two timestamps, and the footprint */ ! if ((dp->d_size - 18) > buflen) goto cleanup; /* out of room! */ memcpy(cp, cp1, 18); cp += 18; --- 2195,2201 ---- /* first just copy over the type_covered, algorithm, */ /* labels, orig ttl, two timestamps, and the footprint */ ! if (buflen < 18) goto cleanup; /* out of room! */ memcpy(cp, cp1, 18); cp += 18; Index: contrib/bind/bin/named/ns_resp.c =================================================================== RCS file: /home/ncvs/src/contrib/bind/bin/named/ns_resp.c,v retrieving revision 1.1.1.2.2.6.2.1 retrieving revision 1.1.1.2.2.6.2.2 diff -c -r1.1.1.2.2.6.2.1 -r1.1.1.2.2.6.2.2 *** contrib/bind/bin/named/ns_resp.c 15 Jul 2002 07:51:12 -0000 1.1.1.2.2.6.2.1 --- contrib/bind/bin/named/ns_resp.c 14 Nov 2002 03:18:40 -0000 1.1.1.2.2.6.2.2 *************** *** 2001,2007 **** * to BOUNDS_CHECK() here. */ cp1 += (n = strlen((char *)cp1) + 1); ! n1 = sizeof(data) - n; n = dn_expand(msg, eom, cp, (char *)cp1, n1); if (n < 0) { hp->rcode = FORMERR; --- 2001,2007 ---- * to BOUNDS_CHECK() here. */ cp1 += (n = strlen((char *)cp1) + 1); ! n1 = sizeof(data) - n - INT16SZ; n = dn_expand(msg, eom, cp, (char *)cp1, n1); if (n < 0) { hp->rcode = FORMERR; *************** *** 2043,2050 **** ttl = origTTL; } /* Don't let bogus signers "sign" in the future. */ ! if (signtime > now) { ns_debug(ns_log_default, 3, "ignoring SIG: signature date %s is in the future", p_secstodate (signtime)); --- 2043,2060 ---- ttl = origTTL; } + /* + * Check that expire and signature times are internally + * consistant. + */ + if (!SEQ_GT(exptime, signtime) && exptime != signtime) { + ns_debug(ns_log_default, 3, + "ignoring SIG: signature expires before it was signed"); + return ((cp - rrp) + dlen); + } + /* Don't let bogus signers "sign" in the future. */ ! if (SEQ_GT(signtime, now)) { ns_debug(ns_log_default, 3, "ignoring SIG: signature date %s is in the future", p_secstodate (signtime)); *************** *** 2052,2058 **** } /* Ignore received SIG RR's that are already expired. */ ! if (exptime <= now) { ns_debug(ns_log_default, 3, "ignoring SIG: expiration %s is in the past", p_secstodate (exptime)); --- 2062,2068 ---- } /* Ignore received SIG RR's that are already expired. */ ! if (SEQ_GT(now, exptime)) { ns_debug(ns_log_default, 3, "ignoring SIG: expiration %s is in the past", p_secstodate (exptime)); Index: contrib/bind/lib/nameser/ns_name.c =================================================================== RCS file: /home/ncvs/src/contrib/bind/lib/nameser/ns_name.c,v retrieving revision 1.1.1.2.2.2.2.1 retrieving revision 1.1.1.2.2.2.2.2 diff -c -r1.1.1.2.2.2.2.1 -r1.1.1.2.2.2.2.2 *** contrib/bind/lib/nameser/ns_name.c 15 Jul 2002 07:51:18 -0000 1.1.1.2.2.2.2.1 --- contrib/bind/lib/nameser/ns_name.c 14 Nov 2002 03:18:41 -0000 1.1.1.2.2.2.2.2 *************** *** 341,346 **** --- 341,350 ---- dn = dst; eom = dst + dstsiz; + if (dn >= eom) { + errno = EMSGSIZE; + return (-1); + } while ((n = *cp++) != 0) { if ((n & NS_CMPRSFLGS) == NS_CMPRSFLGS) { /* Some kind of compression pointer. */ Index: contrib/bind/lib/nameser/ns_samedomain.c =================================================================== RCS file: /home/ncvs/src/contrib/bind/lib/nameser/ns_samedomain.c,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.1.12.1 diff -c -r1.1.1.1 -r1.1.1.1.12.1 *** contrib/bind/lib/nameser/ns_samedomain.c 30 Nov 1999 02:42:58 -0000 1.1.1.1 --- contrib/bind/lib/nameser/ns_samedomain.c 14 Nov 2002 03:18:41 -0000 1.1.1.1.12.1 *************** *** 166,172 **** ns_makecanon(const char *src, char *dst, size_t dstsize) { size_t n = strlen(src); ! if (n + sizeof "." > dstsize) { errno = EMSGSIZE; return (-1); } --- 166,172 ---- ns_makecanon(const char *src, char *dst, size_t dstsize) { size_t n = strlen(src); ! if (n + sizeof "." + 1 > dstsize) { errno = EMSGSIZE; return (-1); } Index: sys/conf/newvers.sh =================================================================== RCS file: /home/ncvs/src/sys/conf/newvers.sh,v retrieving revision 1.44.2.23.2.21 retrieving revision 1.44.2.23.2.23 diff -c -r1.44.2.23.2.21 -r1.44.2.23.2.23 *** sys/conf/newvers.sh 26 Oct 2002 21:11:30 -0000 1.44.2.23.2.21 --- sys/conf/newvers.sh 6 Jan 2003 12:38:21 -0000 1.44.2.23.2.23 *************** *** 32,42 **** # SUCH DAMAGE. # # @(#)newvers.sh 8.1 (Berkeley) 4/20/94 ! # $FreeBSD: src/sys/conf/newvers.sh,v 1.44.2.23.2.21 2002/10/26 21:11:30 gshapiro Exp $ TYPE="FreeBSD" REVISION="4.6.2" ! BRANCH="RELEASE-p4" RELEASE="${REVISION}-${BRANCH}" VERSION="${TYPE} ${RELEASE}" --- 32,42 ---- # SUCH DAMAGE. # # @(#)newvers.sh 8.1 (Berkeley) 4/20/94 ! # $FreeBSD: src/sys/conf/newvers.sh,v 1.44.2.23.2.23 2003/01/06 12:38:21 nectar Exp $ TYPE="FreeBSD" REVISION="4.6.2" ! BRANCH="RELEASE-p6" RELEASE="${REVISION}-${BRANCH}" VERSION="${TYPE} ${RELEASE}" Index: sys/kern/kern_descrip.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_descrip.c,v retrieving revision 1.81.2.14 retrieving revision 1.81.2.14.2.1 diff -c -r1.81.2.14 -r1.81.2.14.2.1 *** sys/kern/kern_descrip.c 29 Apr 2002 15:14:12 -0000 1.81.2.14 --- sys/kern/kern_descrip.c 6 Jan 2003 12:38:21 -0000 1.81.2.14.2.1 *************** *** 36,42 **** * SUCH DAMAGE. * * @(#)kern_descrip.c 8.6 (Berkeley) 4/19/94 ! * $FreeBSD: src/sys/kern/kern_descrip.c,v 1.81.2.14 2002/04/29 15:14:12 asmodai Exp $ */ #include "opt_compat.h" --- 36,42 ---- * SUCH DAMAGE. * * @(#)kern_descrip.c 8.6 (Berkeley) 4/19/94 ! * $FreeBSD: src/sys/kern/kern_descrip.c,v 1.81.2.14.2.1 2003/01/06 12:38:21 nectar Exp $ */ #include "opt_compat.h" *************** *** 711,720 **** switch (fp->f_type) { case DTYPE_PIPE: case DTYPE_SOCKET: ! if (uap->name != _PC_PIPE_BUF) ! return (EINVAL); ! p->p_retval[0] = PIPE_BUF; ! error = 0; break; case DTYPE_FIFO: case DTYPE_VNODE: --- 711,722 ---- switch (fp->f_type) { case DTYPE_PIPE: case DTYPE_SOCKET: ! if (uap->name != _PC_PIPE_BUF) { ! error = EINVAL; ! } else { ! p->p_retval[0] = PIPE_BUF; ! error = 0; ! } break; case DTYPE_FIFO: case DTYPE_VNODE: --wRRV7LY7NUeQGEoC-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030207153658.GB90222>