From owner-svn-src-user@freebsd.org Mon Dec 5 22:26:50 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5AC30C686E3 for ; Mon, 5 Dec 2016 22:26:50 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 294C212D9; Mon, 5 Dec 2016 22:26:50 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id uB5MQn48021817; Mon, 5 Dec 2016 22:26:49 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id uB5MQmdp021810; Mon, 5 Dec 2016 22:26:48 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201612052226.uB5MQmdp021810@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 5 Dec 2016 22:26:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r309565 - in user/cperciva/freebsd-update-build/patches: 10.1-RELEASE 10.2-RELEASE 10.3-RELEASE 11.0-RELEASE 9.3-RELEASE X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Dec 2016 22:26:50 -0000 Author: glebius Date: Mon Dec 5 22:26:48 2016 New Revision: 309565 URL: https://svnweb.freebsd.org/changeset/base/309565 Log: Store SA-16:33-35 patches. Added: user/cperciva/freebsd-update-build/patches/10.1-RELEASE/42-SA-16:35.openssl user/cperciva/freebsd-update-build/patches/10.2-RELEASE/25-SA-16:35.openssl user/cperciva/freebsd-update-build/patches/10.3-RELEASE/12-SA-16:33.openssh user/cperciva/freebsd-update-build/patches/10.3-RELEASE/12-SA-16:35.openssl user/cperciva/freebsd-update-build/patches/11.0-RELEASE/3-SA-16:33.openssh user/cperciva/freebsd-update-build/patches/9.3-RELEASE/50-SA-16:34.bind user/cperciva/freebsd-update-build/patches/9.3-RELEASE/50-SA-16:35.openssl Added: user/cperciva/freebsd-update-build/patches/10.1-RELEASE/42-SA-16:35.openssl ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.1-RELEASE/42-SA-16:35.openssl Mon Dec 5 22:26:48 2016 (r309565) @@ -0,0 +1,94 @@ +--- crypto/openssl/ssl/d1_pkt.c.orig ++++ crypto/openssl/ssl/d1_pkt.c +@@ -924,6 +924,13 @@ + goto start; + } + ++ /* ++ * Reset the count of consecutive warning alerts if we've got a non-empty ++ * record that isn't an alert. ++ */ ++ if (rr->type != SSL3_RT_ALERT && rr->length != 0) ++ s->s3->alert_count = 0; ++ + /* we now have a packet which can be read and processed */ + + if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, +@@ -1190,6 +1197,14 @@ + + if (alert_level == SSL3_AL_WARNING) { + s->s3->warn_alert = alert_descr; ++ ++ s->s3->alert_count++; ++ if (s->s3->alert_count == MAX_WARN_ALERT_COUNT) { ++ al = SSL_AD_UNEXPECTED_MESSAGE; ++ SSLerr(SSL_F_DTLS1_READ_BYTES, SSL_R_TOO_MANY_WARN_ALERTS); ++ goto f_err; ++ } ++ + if (alert_descr == SSL_AD_CLOSE_NOTIFY) { + #ifndef OPENSSL_NO_SCTP + /* +--- crypto/openssl/ssl/s3_pkt.c.orig ++++ crypto/openssl/ssl/s3_pkt.c +@@ -1057,6 +1057,13 @@ + return (ret); + } + ++ /* ++ * Reset the count of consecutive warning alerts if we've got a non-empty ++ * record that isn't an alert. ++ */ ++ if (rr->type != SSL3_RT_ALERT && rr->length != 0) ++ s->s3->alert_count = 0; ++ + /* we now have a packet which can be read and processed */ + + if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, +@@ -1271,6 +1278,14 @@ + + if (alert_level == SSL3_AL_WARNING) { + s->s3->warn_alert = alert_descr; ++ ++ s->s3->alert_count++; ++ if (s->s3->alert_count == MAX_WARN_ALERT_COUNT) { ++ al = SSL_AD_UNEXPECTED_MESSAGE; ++ SSLerr(SSL_F_SSL3_READ_BYTES, SSL_R_TOO_MANY_WARN_ALERTS); ++ goto f_err; ++ } ++ + if (alert_descr == SSL_AD_CLOSE_NOTIFY) { + s->shutdown |= SSL_RECEIVED_SHUTDOWN; + return (0); +--- crypto/openssl/ssl/ssl.h.orig ++++ crypto/openssl/ssl/ssl.h +@@ -2717,6 +2717,7 @@ + # define SSL_R_TLS_HEARTBEAT_PENDING 366 + # define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 + # define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 ++# define SSL_R_TOO_MANY_WARN_ALERTS 409 + # define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 + # define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 + # define SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER 235 +--- crypto/openssl/ssl/ssl3.h.orig ++++ crypto/openssl/ssl/ssl3.h +@@ -587,6 +587,8 @@ + char is_probably_safari; + # endif /* !OPENSSL_NO_EC */ + # endif /* !OPENSSL_NO_TLSEXT */ ++ /* Count of the number of consecutive warning alerts received */ ++ unsigned int alert_count; + } SSL3_STATE; + + # endif +--- crypto/openssl/ssl/ssl_locl.h.orig ++++ crypto/openssl/ssl/ssl_locl.h +@@ -389,6 +389,8 @@ + */ + # define SSL_MAX_DIGEST 6 + ++# define MAX_WARN_ALERT_COUNT 5 ++ + # define TLS1_PRF_DGST_MASK (0xff << TLS1_PRF_DGST_SHIFT) + + # define TLS1_PRF_DGST_SHIFT 10 Added: user/cperciva/freebsd-update-build/patches/10.2-RELEASE/25-SA-16:35.openssl ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.2-RELEASE/25-SA-16:35.openssl Mon Dec 5 22:26:48 2016 (r309565) @@ -0,0 +1,94 @@ +--- crypto/openssl/ssl/d1_pkt.c.orig ++++ crypto/openssl/ssl/d1_pkt.c +@@ -924,6 +924,13 @@ + goto start; + } + ++ /* ++ * Reset the count of consecutive warning alerts if we've got a non-empty ++ * record that isn't an alert. ++ */ ++ if (rr->type != SSL3_RT_ALERT && rr->length != 0) ++ s->s3->alert_count = 0; ++ + /* we now have a packet which can be read and processed */ + + if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, +@@ -1190,6 +1197,14 @@ + + if (alert_level == SSL3_AL_WARNING) { + s->s3->warn_alert = alert_descr; ++ ++ s->s3->alert_count++; ++ if (s->s3->alert_count == MAX_WARN_ALERT_COUNT) { ++ al = SSL_AD_UNEXPECTED_MESSAGE; ++ SSLerr(SSL_F_DTLS1_READ_BYTES, SSL_R_TOO_MANY_WARN_ALERTS); ++ goto f_err; ++ } ++ + if (alert_descr == SSL_AD_CLOSE_NOTIFY) { + #ifndef OPENSSL_NO_SCTP + /* +--- crypto/openssl/ssl/s3_pkt.c.orig ++++ crypto/openssl/ssl/s3_pkt.c +@@ -1057,6 +1057,13 @@ + return (ret); + } + ++ /* ++ * Reset the count of consecutive warning alerts if we've got a non-empty ++ * record that isn't an alert. ++ */ ++ if (rr->type != SSL3_RT_ALERT && rr->length != 0) ++ s->s3->alert_count = 0; ++ + /* we now have a packet which can be read and processed */ + + if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, +@@ -1271,6 +1278,14 @@ + + if (alert_level == SSL3_AL_WARNING) { + s->s3->warn_alert = alert_descr; ++ ++ s->s3->alert_count++; ++ if (s->s3->alert_count == MAX_WARN_ALERT_COUNT) { ++ al = SSL_AD_UNEXPECTED_MESSAGE; ++ SSLerr(SSL_F_SSL3_READ_BYTES, SSL_R_TOO_MANY_WARN_ALERTS); ++ goto f_err; ++ } ++ + if (alert_descr == SSL_AD_CLOSE_NOTIFY) { + s->shutdown |= SSL_RECEIVED_SHUTDOWN; + return (0); +--- crypto/openssl/ssl/ssl.h.orig ++++ crypto/openssl/ssl/ssl.h +@@ -2717,6 +2717,7 @@ + # define SSL_R_TLS_HEARTBEAT_PENDING 366 + # define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 + # define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 ++# define SSL_R_TOO_MANY_WARN_ALERTS 409 + # define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 + # define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 + # define SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER 235 +--- crypto/openssl/ssl/ssl3.h.orig ++++ crypto/openssl/ssl/ssl3.h +@@ -587,6 +587,8 @@ + char is_probably_safari; + # endif /* !OPENSSL_NO_EC */ + # endif /* !OPENSSL_NO_TLSEXT */ ++ /* Count of the number of consecutive warning alerts received */ ++ unsigned int alert_count; + } SSL3_STATE; + + # endif +--- crypto/openssl/ssl/ssl_locl.h.orig ++++ crypto/openssl/ssl/ssl_locl.h +@@ -389,6 +389,8 @@ + */ + # define SSL_MAX_DIGEST 6 + ++# define MAX_WARN_ALERT_COUNT 5 ++ + # define TLS1_PRF_DGST_MASK (0xff << TLS1_PRF_DGST_SHIFT) + + # define TLS1_PRF_DGST_SHIFT 10 Added: user/cperciva/freebsd-update-build/patches/10.3-RELEASE/12-SA-16:33.openssh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.3-RELEASE/12-SA-16:33.openssh Mon Dec 5 22:26:48 2016 (r309565) @@ -0,0 +1,10 @@ +--- crypto/openssh/kex.c.orig ++++ crypto/openssh/kex.c +@@ -468,6 +468,7 @@ + if (kex == NULL) + return SSH_ERR_INVALID_ARGUMENT; + ++ ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, NULL); + ptr = sshpkt_ptr(ssh, &dlen); + if ((r = sshbuf_put(kex->peer, ptr, dlen)) != 0) + return r; Added: user/cperciva/freebsd-update-build/patches/10.3-RELEASE/12-SA-16:35.openssl ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.3-RELEASE/12-SA-16:35.openssl Mon Dec 5 22:26:48 2016 (r309565) @@ -0,0 +1,94 @@ +--- crypto/openssl/ssl/d1_pkt.c.orig ++++ crypto/openssl/ssl/d1_pkt.c +@@ -924,6 +924,13 @@ + goto start; + } + ++ /* ++ * Reset the count of consecutive warning alerts if we've got a non-empty ++ * record that isn't an alert. ++ */ ++ if (rr->type != SSL3_RT_ALERT && rr->length != 0) ++ s->s3->alert_count = 0; ++ + /* we now have a packet which can be read and processed */ + + if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, +@@ -1190,6 +1197,14 @@ + + if (alert_level == SSL3_AL_WARNING) { + s->s3->warn_alert = alert_descr; ++ ++ s->s3->alert_count++; ++ if (s->s3->alert_count == MAX_WARN_ALERT_COUNT) { ++ al = SSL_AD_UNEXPECTED_MESSAGE; ++ SSLerr(SSL_F_DTLS1_READ_BYTES, SSL_R_TOO_MANY_WARN_ALERTS); ++ goto f_err; ++ } ++ + if (alert_descr == SSL_AD_CLOSE_NOTIFY) { + #ifndef OPENSSL_NO_SCTP + /* +--- crypto/openssl/ssl/s3_pkt.c.orig ++++ crypto/openssl/ssl/s3_pkt.c +@@ -1057,6 +1057,13 @@ + return (ret); + } + ++ /* ++ * Reset the count of consecutive warning alerts if we've got a non-empty ++ * record that isn't an alert. ++ */ ++ if (rr->type != SSL3_RT_ALERT && rr->length != 0) ++ s->s3->alert_count = 0; ++ + /* we now have a packet which can be read and processed */ + + if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, +@@ -1271,6 +1278,14 @@ + + if (alert_level == SSL3_AL_WARNING) { + s->s3->warn_alert = alert_descr; ++ ++ s->s3->alert_count++; ++ if (s->s3->alert_count == MAX_WARN_ALERT_COUNT) { ++ al = SSL_AD_UNEXPECTED_MESSAGE; ++ SSLerr(SSL_F_SSL3_READ_BYTES, SSL_R_TOO_MANY_WARN_ALERTS); ++ goto f_err; ++ } ++ + if (alert_descr == SSL_AD_CLOSE_NOTIFY) { + s->shutdown |= SSL_RECEIVED_SHUTDOWN; + return (0); +--- crypto/openssl/ssl/ssl.h.orig ++++ crypto/openssl/ssl/ssl.h +@@ -2717,6 +2717,7 @@ + # define SSL_R_TLS_HEARTBEAT_PENDING 366 + # define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 + # define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 ++# define SSL_R_TOO_MANY_WARN_ALERTS 409 + # define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 + # define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 + # define SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER 235 +--- crypto/openssl/ssl/ssl3.h.orig ++++ crypto/openssl/ssl/ssl3.h +@@ -587,6 +587,8 @@ + char is_probably_safari; + # endif /* !OPENSSL_NO_EC */ + # endif /* !OPENSSL_NO_TLSEXT */ ++ /* Count of the number of consecutive warning alerts received */ ++ unsigned int alert_count; + } SSL3_STATE; + + # endif +--- crypto/openssl/ssl/ssl_locl.h.orig ++++ crypto/openssl/ssl/ssl_locl.h +@@ -389,6 +389,8 @@ + */ + # define SSL_MAX_DIGEST 6 + ++# define MAX_WARN_ALERT_COUNT 5 ++ + # define TLS1_PRF_DGST_MASK (0xff << TLS1_PRF_DGST_SHIFT) + + # define TLS1_PRF_DGST_SHIFT 10 Added: user/cperciva/freebsd-update-build/patches/11.0-RELEASE/3-SA-16:33.openssh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/11.0-RELEASE/3-SA-16:33.openssh Mon Dec 5 22:26:48 2016 (r309565) @@ -0,0 +1,10 @@ +--- crypto/openssh/kex.c.orig ++++ crypto/openssh/kex.c +@@ -468,6 +468,7 @@ + if (kex == NULL) + return SSH_ERR_INVALID_ARGUMENT; + ++ ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, NULL); + ptr = sshpkt_ptr(ssh, &dlen); + if ((r = sshbuf_put(kex->peer, ptr, dlen)) != 0) + return r; Added: user/cperciva/freebsd-update-build/patches/9.3-RELEASE/50-SA-16:34.bind ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/9.3-RELEASE/50-SA-16:34.bind Mon Dec 5 22:26:48 2016 (r309565) @@ -0,0 +1,184 @@ +--- contrib/bind9/lib/dns/resolver.c.orig ++++ contrib/bind9/lib/dns/resolver.c +@@ -524,7 +524,9 @@ + valarg->addrinfo = addrinfo; + + if (!ISC_LIST_EMPTY(fctx->validators)) +- INSIST((valoptions & DNS_VALIDATOR_DEFER) != 0); ++ valoptions |= DNS_VALIDATOR_DEFER; ++ else ++ valoptions &= ~DNS_VALIDATOR_DEFER; + + result = dns_validator_create(fctx->res->view, name, type, rdataset, + sigrdataset, fctx->rmessage, +@@ -4849,13 +4851,6 @@ + rdataset, + sigrdataset, + valoptions, task); +- /* +- * Defer any further validations. +- * This prevents multiple validators +- * from manipulating fctx->rmessage +- * simultaneously. +- */ +- valoptions |= DNS_VALIDATOR_DEFER; + } + } else if (CHAINING(rdataset)) { + if (rdataset->type == dns_rdatatype_cname) +@@ -4961,6 +4956,11 @@ + eresult == DNS_R_NCACHENXRRSET); + } + event->result = eresult; ++ if (adbp != NULL && *adbp != NULL) { ++ if (anodep != NULL && *anodep != NULL) ++ dns_db_detachnode(*adbp, anodep); ++ dns_db_detach(adbp); ++ } + dns_db_attach(fctx->cache, adbp); + dns_db_transfernode(fctx->cache, &node, anodep); + clone_results(fctx); +@@ -5208,6 +5208,11 @@ + fctx->attributes |= FCTX_ATTR_HAVEANSWER; + if (event != NULL) { + event->result = eresult; ++ if (adbp != NULL && *adbp != NULL) { ++ if (anodep != NULL && *anodep != NULL) ++ dns_db_detachnode(*adbp, anodep); ++ dns_db_detach(adbp); ++ } + dns_db_attach(fctx->cache, adbp); + dns_db_transfernode(fctx->cache, &node, anodep); + clone_results(fctx); +@@ -6016,13 +6021,15 @@ + answer_response(fetchctx_t *fctx) { + isc_result_t result; + dns_message_t *message; +- dns_name_t *name, *dname = NULL, *qname, tname, *ns_name; ++ dns_name_t *name, *dname = NULL, *qname, *dqname, tname, *ns_name; ++ dns_name_t *cname = NULL; + dns_rdataset_t *rdataset, *ns_rdataset; + isc_boolean_t done, external, chaining, aa, found, want_chaining; +- isc_boolean_t have_answer, found_cname, found_type, wanted_chaining; ++ isc_boolean_t have_answer, found_cname, found_dname, found_type; ++ isc_boolean_t wanted_chaining; + unsigned int aflag; + dns_rdatatype_t type; +- dns_fixedname_t fdname, fqname; ++ dns_fixedname_t fdname, fqname, fqdname; + dns_view_t *view; + + FCTXTRACE("answer_response"); +@@ -6036,6 +6043,7 @@ + + done = ISC_FALSE; + found_cname = ISC_FALSE; ++ found_dname = ISC_FALSE; + found_type = ISC_FALSE; + chaining = ISC_FALSE; + have_answer = ISC_FALSE; +@@ -6045,12 +6053,13 @@ + aa = ISC_TRUE; + else + aa = ISC_FALSE; +- qname = &fctx->name; ++ dqname = qname = &fctx->name; + type = fctx->type; + view = fctx->res->view; ++ dns_fixedname_init(&fqdname); + result = dns_message_firstname(message, DNS_SECTION_ANSWER); + while (!done && result == ISC_R_SUCCESS) { +- dns_namereln_t namereln; ++ dns_namereln_t namereln, dnamereln; + int order; + unsigned int nlabels; + +@@ -6058,6 +6067,8 @@ + dns_message_currentname(message, DNS_SECTION_ANSWER, &name); + external = ISC_TF(!dns_name_issubdomain(name, &fctx->domain)); + namereln = dns_name_fullcompare(qname, name, &order, &nlabels); ++ dnamereln = dns_name_fullcompare(dqname, name, &order, ++ &nlabels); + if (namereln == dns_namereln_equal) { + wanted_chaining = ISC_FALSE; + for (rdataset = ISC_LIST_HEAD(name->list); +@@ -6152,7 +6163,7 @@ + } + } else if (rdataset->type == dns_rdatatype_rrsig + && rdataset->covers == +- dns_rdatatype_cname ++ dns_rdatatype_cname + && !found_type) { + /* + * We're looking for something else, +@@ -6182,11 +6193,18 @@ + * a CNAME or DNAME). + */ + INSIST(!external); +- if (aflag == +- DNS_RDATASETATTR_ANSWER) { ++ if ((rdataset->type != ++ dns_rdatatype_cname) || ++ !found_dname || ++ (aflag == ++ DNS_RDATASETATTR_ANSWER)) ++ { + have_answer = ISC_TRUE; ++ if (rdataset->type == ++ dns_rdatatype_cname) ++ cname = name; + name->attributes |= +- DNS_NAMEATTR_ANSWER; ++ DNS_NAMEATTR_ANSWER; + } + rdataset->attributes |= aflag; + if (aa) +@@ -6280,11 +6298,11 @@ + return (DNS_R_FORMERR); + } + +- if (namereln != dns_namereln_subdomain) { ++ if (dnamereln != dns_namereln_subdomain) { + char qbuf[DNS_NAME_FORMATSIZE]; + char obuf[DNS_NAME_FORMATSIZE]; + +- dns_name_format(qname, qbuf, ++ dns_name_format(dqname, qbuf, + sizeof(qbuf)); + dns_name_format(name, obuf, + sizeof(obuf)); +@@ -6299,7 +6317,7 @@ + want_chaining = ISC_TRUE; + POST(want_chaining); + aflag = DNS_RDATASETATTR_ANSWER; +- result = dname_target(rdataset, qname, ++ result = dname_target(rdataset, dqname, + nlabels, &fdname); + if (result == ISC_R_NOSPACE) { + /* +@@ -6316,10 +6334,13 @@ + + dname = dns_fixedname_name(&fdname); + if (!is_answertarget_allowed(view, +- qname, rdataset->type, +- dname, &fctx->domain)) { ++ dqname, rdataset->type, ++ dname, &fctx->domain)) ++ { + return (DNS_R_SERVFAIL); + } ++ dqname = dns_fixedname_name(&fqdname); ++ dns_name_copy(dname, dqname, NULL); + } else { + /* + * We've found a signature that +@@ -6344,6 +6365,10 @@ + INSIST(!external); + if (aflag == DNS_RDATASETATTR_ANSWER) { + have_answer = ISC_TRUE; ++ found_dname = ISC_TRUE; ++ if (cname != NULL) ++ cname->attributes &= ++ ~DNS_NAMEATTR_ANSWER; + name->attributes |= + DNS_NAMEATTR_ANSWER; + } Added: user/cperciva/freebsd-update-build/patches/9.3-RELEASE/50-SA-16:35.openssl ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/9.3-RELEASE/50-SA-16:35.openssl Mon Dec 5 22:26:48 2016 (r309565) @@ -0,0 +1,94 @@ +--- crypto/openssl/ssl/d1_pkt.c.orig ++++ crypto/openssl/ssl/d1_pkt.c +@@ -820,6 +820,13 @@ + goto start; + } + ++ /* ++ * Reset the count of consecutive warning alerts if we've got a non-empty ++ * record that isn't an alert. ++ */ ++ if (rr->type != SSL3_RT_ALERT && rr->length != 0) ++ s->s3->alert_count = 0; ++ + /* we now have a packet which can be read and processed */ + + if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, +@@ -1043,6 +1050,14 @@ + + if (alert_level == 1) { /* warning */ + s->s3->warn_alert = alert_descr; ++ ++ s->s3->alert_count++; ++ if (s->s3->alert_count == MAX_WARN_ALERT_COUNT) { ++ al = SSL_AD_UNEXPECTED_MESSAGE; ++ SSLerr(SSL_F_DTLS1_READ_BYTES, SSL_R_TOO_MANY_WARN_ALERTS); ++ goto f_err; ++ } ++ + if (alert_descr == SSL_AD_CLOSE_NOTIFY) { + s->shutdown |= SSL_RECEIVED_SHUTDOWN; + return (0); +--- crypto/openssl/ssl/s3_pkt.c.orig ++++ crypto/openssl/ssl/s3_pkt.c +@@ -922,6 +922,13 @@ + return (ret); + } + ++ /* ++ * Reset the count of consecutive warning alerts if we've got a non-empty ++ * record that isn't an alert. ++ */ ++ if (rr->type != SSL3_RT_ALERT && rr->length != 0) ++ s->s3->alert_count = 0; ++ + /* we now have a packet which can be read and processed */ + + if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, +@@ -1121,6 +1128,14 @@ + + if (alert_level == 1) { /* warning */ + s->s3->warn_alert = alert_descr; ++ ++ s->s3->alert_count++; ++ if (s->s3->alert_count == MAX_WARN_ALERT_COUNT) { ++ al = SSL_AD_UNEXPECTED_MESSAGE; ++ SSLerr(SSL_F_SSL3_READ_BYTES, SSL_R_TOO_MANY_WARN_ALERTS); ++ goto f_err; ++ } ++ + if (alert_descr == SSL_AD_CLOSE_NOTIFY) { + s->shutdown |= SSL_RECEIVED_SHUTDOWN; + return (0); +--- crypto/openssl/ssl/ssl.h.orig ++++ crypto/openssl/ssl/ssl.h +@@ -2195,6 +2195,7 @@ + # define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 + # define SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER 232 + # define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 227 ++# define SSL_R_TOO_MANY_WARN_ALERTS 409 + # define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 + # define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 + # define SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER 235 +--- crypto/openssl/ssl/ssl3.h.orig ++++ crypto/openssl/ssl/ssl3.h +@@ -491,6 +491,8 @@ + char is_probably_safari; + # endif /* !OPENSSL_NO_EC */ + # endif /* !OPENSSL_NO_TLSEXT */ ++ /* Count of the number of consecutive warning alerts received */ ++ unsigned int alert_count; + } SSL3_STATE; + + /* SSLv3 */ +--- crypto/openssl/ssl/ssl_locl.h.orig ++++ crypto/openssl/ssl/ssl_locl.h +@@ -247,6 +247,8 @@ + # define DEC32(a) ((a)=((a)-1)&0xffffffffL) + # define MAX_MAC_SIZE 20 /* up from 16 for SSLv3 */ + ++# define MAX_WARN_ALERT_COUNT 5 ++ + /* + * Define the Bitmasks for SSL_CIPHER.algorithms. + * This bits are used packed as dense as possible. If new methods/ciphers From owner-svn-src-user@freebsd.org Tue Dec 6 00:12:10 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EC33CC69BF6 for ; Tue, 6 Dec 2016 00:12:10 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8A7BBD20; Tue, 6 Dec 2016 00:12:10 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id uB60C9qR066705; Tue, 6 Dec 2016 00:12:09 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id uB60C923066702; Tue, 6 Dec 2016 00:12:09 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201612060012.uB60C923066702@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Tue, 6 Dec 2016 00:12:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r309585 - in user/cperciva/freebsd-update-build/patches: 10.1-RELEASE 10.2-RELEASE 10.3-RELEASE 11.0-RELEASE 9.3-RELEASE X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Dec 2016 00:12:11 -0000 Author: glebius Date: Tue Dec 6 00:12:09 2016 New Revision: 309585 URL: https://svnweb.freebsd.org/changeset/base/309585 Log: Put upcoming ENs into freebsd-update build. Added: user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-EN-16:19.tzcode user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-EN-16:20.tzdata user/cperciva/freebsd-update-build/patches/10.2-RELEASE/26-EN-16:19.tzcode user/cperciva/freebsd-update-build/patches/10.2-RELEASE/26-EN-16:20.tzdata user/cperciva/freebsd-update-build/patches/10.3-RELEASE/13-EN-16:19.tzcode user/cperciva/freebsd-update-build/patches/10.3-RELEASE/13-EN-16:20.tzdata user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-EN-16:19.tzcode user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-EN-16:20.tzdata user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-EN-16:21.localedef user/cperciva/freebsd-update-build/patches/9.3-RELEASE/51-EN-16:19.tzcode user/cperciva/freebsd-update-build/patches/9.3-RELEASE/51-EN-16:20.tzdata Added: user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-EN-16:19.tzcode ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-EN-16:19.tzcode Tue Dec 6 00:12:09 2016 (r309585) @@ -0,0 +1,70 @@ +--- contrib/tzcode/zic/zdump.c.orig ++++ contrib/tzcode/zic/zdump.c +@@ -212,24 +212,16 @@ + return; + cp = abbrp; + wp = NULL; +- while (isascii((unsigned char) *cp) && isalpha((unsigned char) *cp)) ++ while (isascii((unsigned char) *cp) && ++ (isalnum((unsigned char)*cp) || *cp == '-' || *cp == '+')) + ++cp; +- if (cp - abbrp == 0) +- wp = _("lacks alphabetic at start"); +- else if (cp - abbrp < 3) +- wp = _("has fewer than 3 alphabetics"); ++ if (cp - abbrp < 3) ++ wp = _("has fewer than 3 characters"); + else if (cp - abbrp > 6) +- wp = _("has more than 6 alphabetics"); +- if (wp == NULL && (*cp == '+' || *cp == '-')) { +- ++cp; +- if (isascii((unsigned char) *cp) && +- isdigit((unsigned char) *cp)) +- if (*cp++ == '1' && *cp >= '0' && *cp <= '4') +- ++cp; +- if (*cp != '\0') +- wp = _("differs from POSIX standard"); +- } +- if (wp == NULL) ++ wp = _("has more than 6 characters"); ++ else if (*cp) ++ wp = "has characters other than ASCII alphanumerics, '-' or '+'"; ++ else + return; + (void) fflush(stdout); + (void) fprintf(stderr, +--- contrib/tzcode/zic/zic.c.orig ++++ contrib/tzcode/zic/zic.c +@@ -2615,29 +2615,15 @@ + register const char * cp; + register char * wp; + +- /* +- ** Want one to ZIC_MAX_ABBR_LEN_WO_WARN alphabetics +- ** optionally followed by a + or - and a number from 1 to 14. +- */ + cp = string; + wp = NULL; + while (isascii((unsigned char) *cp) && +- isalpha((unsigned char) *cp)) ++ (isalnum((unsigned char)*cp) || *cp == '-' || *cp == '+')) + ++cp; +- if (cp - string == 0) +-wp = _("time zone abbreviation lacks alphabetic at start"); + if (noise && cp - string > 3) +-wp = _("time zone abbreviation has more than 3 alphabetics"); ++wp = _("time zone abbreviation has more than 3 characters"); + if (cp - string > ZIC_MAX_ABBR_LEN_WO_WARN) +-wp = _("time zone abbreviation has too many alphabetics"); +- if (wp == NULL && (*cp == '+' || *cp == '-')) { +- ++cp; +- if (isascii((unsigned char) *cp) && +- isdigit((unsigned char) *cp)) +- if (*cp++ == '1' && +- *cp >= '0' && *cp <= '4') +- ++cp; +- } ++wp = _("time zone abbreviation has too many characters"); + if (*cp != '\0') + wp = _("time zone abbreviation differs from POSIX standard"); + if (wp != NULL) { Added: user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-EN-16:20.tzdata ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-EN-16:20.tzdata Tue Dec 6 00:12:09 2016 (r309585) @@ -0,0 +1,15859 @@ +--- contrib/tzdata/CONTRIBUTING.orig ++++ contrib/tzdata/CONTRIBUTING +@@ -0,0 +1,73 @@ ++Contributing to the tz code and data ++ ++The time zone database is by no means authoritative: governments ++change timekeeping rules erratically and sometimes with little ++warning, the data entries do not cover all of civil time before ++1970, and undoubtedly errors remain in the code and data. Feel ++free to fill gaps or fix mistakes, and please email improvements ++to tz@iana.org for use in the future. ++ ++To email small changes, please run a POSIX shell command like ++'diff -u old/europe new/europe >myfix.patch', and attach ++myfix.patch to the email. ++ ++For more-elaborate changes, please read the Theory file and browse ++the mailing list archives for ++examples of patches that tend to work well. Ideally, additions to ++data should contain commentary citing reliable sources as ++justification. ++ ++Please submit changes against either the latest release in ++ or the master branch of the experimental ++Git repository. If you use Git the following workflow may be helpful: ++ ++ * Copy the experimental repository. ++ ++ git clone https://github.com/eggert/tz.git ++ cd tz ++ ++ * Get current with the master branch. ++ ++ git checkout master ++ git pull ++ ++ * Switch to a new branch for the changes. Choose a different ++ branch name for each change set. ++ ++ git checkout -b mybranch ++ ++ * Edit source files. Include commentary that justifies the ++ changes by citing reliable sources. ++ ++ * Debug the changes, e.g.: ++ ++ make check ++ make install ++ ./zdump -v America/Los_Angeles ++ ++ * For each separable change, commit it in the new branch, e.g.: ++ ++ git add northamerica ++ git commit ++ ++ See recent 'git log' output for the commit-message style. ++ ++ * Create patch files 0001-*, 0002-*, ... ++ ++ git format-patch master ++ ++ * After reviewing the patch files, send the patches to tz@iana.org ++ for others to review. ++ ++ git send-email master ++ ++ * Start anew by getting current with the master branch again ++ (the second step above). ++ ++Please do not create issues or pull requests on GitHub, as the ++proper procedure for proposing and distributing patches is via ++email as illustrated above. ++ ++----- ++ ++This file is in the public domain. +--- contrib/tzdata/LICENSE.orig ++++ contrib/tzdata/LICENSE +@@ -0,0 +1,4 @@ ++With a few exceptions, all files in the tz code and data (including ++this one) are in the public domain. The exceptions are date.c, ++newstrftime.3, and strftime.c, which contain material derived from BSD ++and which use the BSD 3-clause license. +--- contrib/tzdata/Makefile.orig ++++ contrib/tzdata/Makefile +@@ -0,0 +1,793 @@ ++# This file is in the public domain, so clarified as of ++# 2009-05-17 by Arthur David Olson. ++ ++# Package name for the code distribution. ++PACKAGE= tzcode ++ ++# Version number for the distribution, overridden in the 'tarballs' rule below. ++VERSION= unknown ++ ++# Email address for bug reports. ++BUGEMAIL= tz@iana.org ++ ++# Change the line below for your time zone (after finding the zone you want in ++# the time zone files, or adding it to a time zone file). ++# Alternately, if you discover you've got the wrong time zone, you can just ++# zic -l rightzone ++# to correct things. ++# Use the command ++# make zonenames ++# to get a list of the values you can use for LOCALTIME. ++ ++LOCALTIME= GMT ++ ++# If you want something other than Eastern United States time as a template ++# for handling POSIX-style time zone environment variables, ++# change the line below (after finding the zone you want in the ++# time zone files, or adding it to a time zone file). ++# (When a POSIX-style environment variable is handled, the rules in the ++# template file are used to determine "spring forward" and "fall back" days and ++# times; the environment variable itself specifies UT offsets of standard and ++# summer time.) ++# Alternately, if you discover you've got the wrong time zone, you can just ++# zic -p rightzone ++# to correct things. ++# Use the command ++# make zonenames ++# to get a list of the values you can use for POSIXRULES. ++# If you want POSIX compatibility, use "America/New_York". ++ ++POSIXRULES= America/New_York ++ ++# Also see TZDEFRULESTRING below, which takes effect only ++# if the time zone files cannot be accessed. ++ ++# Everything gets put in subdirectories of. . . ++ ++TOPDIR= /usr/local ++ ++# "Compiled" time zone information is placed in the "TZDIR" directory ++# (and subdirectories). ++# Use an absolute path name for TZDIR unless you're just testing the software. ++ ++TZDIR_BASENAME= zoneinfo ++TZDIR= $(TOPDIR)/etc/$(TZDIR_BASENAME) ++ ++# Types to try, as an alternative to time_t. int64_t should be first. ++TIME_T_ALTERNATIVES= int64_t int32_t uint32_t uint64_t ++ ++# The "tzselect", "zic", and "zdump" commands get installed in. . . ++ ++ETCDIR= $(TOPDIR)/etc ++ ++# If you "make INSTALL", the "date" command gets installed in. . . ++ ++BINDIR= $(TOPDIR)/bin ++ ++# Manual pages go in subdirectories of. . . ++ ++MANDIR= $(TOPDIR)/man ++ ++# Library functions are put in an archive in LIBDIR. ++ ++LIBDIR= $(TOPDIR)/lib ++ ++# If you always want time values interpreted as "seconds since the epoch ++# (not counting leap seconds)", use ++# REDO= posix_only ++# below. If you always want right time values interpreted as "seconds since ++# the epoch" (counting leap seconds)", use ++# REDO= right_only ++# below. If you want both sets of data available, with leap seconds not ++# counted normally, use ++# REDO= posix_right ++# below. If you want both sets of data available, with leap seconds counted ++# normally, use ++# REDO= right_posix ++# below. POSIX mandates that leap seconds not be counted; for compatibility ++# with it, use "posix_only" or "posix_right". ++ ++REDO= posix_right ++ ++# If you want out-of-scope and often-wrong data from the file 'backzone', use ++# PACKRATDATA= backzone ++# To omit this data, use ++# PACKRATDATA= ++ ++PACKRATDATA= ++ ++# Since "." may not be in PATH... ++ ++YEARISTYPE= ./yearistype ++ ++# Non-default libraries needed to link. ++LDLIBS= ++ ++# Add the following to the end of the "CFLAGS=" line as needed. ++# -DBIG_BANG=-9999999LL if the Big Bang occurred at time -9999999 (see zic.c) ++# -DHAVE_DECL_ASCTIME_R=0 if does not declare asctime_r ++# -DHAVE_DIRECT_H if mkdir needs (MS-Windows) ++# -DHAVE_DOS_FILE_NAMES if file names have drive specifiers etc. (MS-DOS) ++# -DHAVE_GETTEXT=1 if 'gettext' works (e.g., GNU/Linux, FreeBSD, Solaris) ++# -DHAVE_INCOMPATIBLE_CTIME_R=1 if your system's time.h declares ++# ctime_r and asctime_r incompatibly with the POSIX standard ++# (Solaris when _POSIX_PTHREAD_SEMANTICS is not defined). ++# -DHAVE_INTTYPES_H=1 if you have a pre-C99 compiler with "inttypes.h" ++# -DHAVE_LINK=0 if your system lacks a link function ++# -DHAVE_LOCALTIME_R=0 if your system lacks a localtime_r function ++# -DHAVE_LOCALTIME_RZ=0 if you do not want zdump to use localtime_rz ++# This defaults to 1 if a working localtime_rz seems to be available. ++# localtime_rz can make zdump significantly faster, but is nonstandard. ++# -DHAVE_POSIX_DECLS=0 if your system's include files do not declare ++# functions like 'link' or variables like 'tzname' required by POSIX ++# -DHAVE_STDINT_H=1 if you have a pre-C99 compiler with "stdint.h" ++# -DHAVE_STRFTIME_L=1 if declares locale_t and strftime_l ++# This defaults to 0 if _POSIX_VERSION < 200809, 1 otherwise. ++# -DHAVE_STRDUP=0 if your system lacks the strdup function ++# -DHAVE_SYMLINK=0 if your system lacks the symlink function ++# -DHAVE_SYS_STAT_H=0 if your compiler lacks a "sys/stat.h" ++# -DHAVE_SYS_WAIT_H=0 if your compiler lacks a "sys/wait.h" ++# -DHAVE_TZSET=0 if your system lacks a tzset function ++# -DHAVE_UNISTD_H=0 if your compiler lacks a "unistd.h" (Microsoft C++ 7?) ++# -DEPOCH_LOCAL=1 if the 'time' function returns local time not UT ++# -DEPOCH_OFFSET=N if the 'time' function returns a value N greater ++# than what POSIX specifies, assuming local time is UT. ++# For example, N is 252460800 on AmigaOS. ++# -DNO_RUN_TIME_WARNINGS_ABOUT_YEAR_2000_PROBLEMS_THANK_YOU=1 ++# if you do not want run time warnings about formats that may cause ++# year 2000 grief ++# -Dssize_t=long on ancient hosts that lack ssize_t ++# -DTHREAD_SAFE=1 to make localtime.c thread-safe, as POSIX requires; ++# not needed by the main-program tz code, which is single-threaded. ++# Append other compiler flags as needed, e.g., -pthread on GNU/Linux. ++# -Dtime_tz=\"T\" to use T as the time_t type, rather than the system time_t ++# -DTZ_DOMAIN=\"foo\" to use "foo" for gettext domain name; default is "tz" ++# -DTZ_DOMAINDIR=\"/path\" to use "/path" for gettext directory; ++# the default is system-supplied, typically "/usr/lib/locale" ++# -DTZDEFRULESTRING=\",date/time,date/time\" to default to the specified ++# DST transitions if the time zone files cannot be accessed ++# -DUNINIT_TRAP=1 if reading uninitialized storage can cause problems ++# other than simply getting garbage data ++# -DUSE_LTZ=0 to build zdump with the system time zone library ++# Also set TZDOBJS=zdump.o and CHECK_TIME_T_ALTERNATIVES= below. ++# -DZIC_MAX_ABBR_LEN_WO_WARN=3 ++# (or some other number) to set the maximum time zone abbreviation length ++# that zic will accept without a warning (the default is 6) ++# $(GCC_DEBUG_FLAGS) if you are using recent GCC and want lots of checking ++GCC_DEBUG_FLAGS = -Dlint -g3 -O3 -fno-common -fstrict-aliasing \ ++ -Wall -Wextra \ ++ -Wbad-function-cast -Wcast-align -Wdate-time \ ++ -Wdeclaration-after-statement \ ++ -Wdouble-promotion \ ++ -Wformat=2 -Winit-self -Wjump-misses-init \ ++ -Wlogical-op -Wmissing-prototypes -Wnested-externs \ ++ -Wold-style-definition -Woverlength-strings -Wpointer-arith \ ++ -Wshadow -Wstrict-prototypes -Wsuggest-attribute=const \ ++ -Wsuggest-attribute=format -Wsuggest-attribute=noreturn \ ++ -Wsuggest-attribute=pure -Wtrampolines \ ++ -Wunused -Wwrite-strings \ ++ -Wno-address -Wno-format-nonliteral -Wno-sign-compare \ ++ -Wno-type-limits -Wno-unused-parameter ++# ++# If you want to use System V compatibility code, add ++# -DUSG_COMPAT ++# to the end of the "CFLAGS=" line. This arrange for "timezone" and "daylight" ++# variables to be kept up-to-date by the time conversion functions. Neither ++# "timezone" nor "daylight" is described in X3J11's work. ++# ++# If your system has a "GMT offset" field in its "struct tm"s ++# (or if you decide to add such a field in your system's "time.h" file), ++# add the name to a define such as ++# -DTM_GMTOFF=tm_gmtoff ++# to the end of the "CFLAGS=" line. If not defined, the code attempts to ++# guess TM_GMTOFF from other macros; define NO_TM_GMTOFF to suppress this. ++# Similarly, if your system has a "zone abbreviation" field, define ++# -DTM_ZONE=tm_zone ++# and define NO_TM_ZONE to suppress any guessing. These two fields are not ++# required by POSIX, but are widely available on GNU/Linux and BSD systems. ++# ++# If you want functions that were inspired by early versions of X3J11's work, ++# add ++# -DSTD_INSPIRED ++# to the end of the "CFLAGS=" line. This arranges for the functions ++# "tzsetwall", "offtime", "timelocal", "timegm", "timeoff", ++# "posix2time", and "time2posix" to be added to the time conversion library. ++# "tzsetwall" is like "tzset" except that it arranges for local wall clock ++# time (rather than the time specified in the TZ environment variable) ++# to be used. ++# "offtime" is like "gmtime" except that it accepts a second (long) argument ++# that gives an offset to add to the time_t when converting it. ++# "timelocal" is equivalent to "mktime". ++# "timegm" is like "timelocal" except that it turns a struct tm into ++# a time_t using UT (rather than local time as "timelocal" does). ++# "timeoff" is like "timegm" except that it accepts a second (long) argument ++# that gives an offset to use when converting to a time_t. ++# "posix2time" and "time2posix" are described in an included manual page. ++# X3J11's work does not describe any of these functions. ++# Sun has provided "tzsetwall", "timelocal", and "timegm" in SunOS 4.0. ++# These functions may well disappear in future releases of the time ++# conversion package. ++# ++# If you don't want functions that were inspired by NetBSD, add ++# -DNETBSD_INSPIRED=0 ++# to the end of the "CFLAGS=" line. Otherwise, the functions ++# "localtime_rz", "mktime_z", "tzalloc", and "tzfree" are added to the ++# time library, and if STD_INSPIRED is also defined the functions ++# "posix2time_z" and "time2posix_z" are added as well. ++# The functions ending in "_z" (or "_rz") are like their unsuffixed ++# (or suffixed-by-"_r") counterparts, except with an extra first ++# argument of opaque type timezone_t that specifies the time zone. ++# "tzalloc" allocates a timezone_t value, and "tzfree" frees it. ++# ++# If you want to allocate state structures in localtime, add ++# -DALL_STATE ++# to the end of the "CFLAGS=" line. Storage is obtained by calling malloc. ++# ++# If you want an "altzone" variable (a la System V Release 3.1), add ++# -DALTZONE ++# to the end of the "CFLAGS=" line. ++# This variable is not described in X3J11's work. ++# ++# NIST-PCTS:151-2, Version 1.4, (1993-12-03) is a test suite put ++# out by the National Institute of Standards and Technology ++# which claims to test C and Posix conformance. If you want to pass PCTS, add ++# -DPCTS ++# to the end of the "CFLAGS=" line. ++# ++# If you want strict compliance with XPG4 as of 1994-04-09, add ++# -DXPG4_1994_04_09 ++# to the end of the "CFLAGS=" line. This causes "strftime" to always return ++# 53 as a week number (rather than 52 or 53) for those days in January that ++# before the first Monday in January when a "%V" format is used and January 1 ++# falls on a Friday, Saturday, or Sunday. ++ ++CFLAGS= ++ ++# Linker flags. Default to $(LFLAGS) for backwards compatibility ++# to release 2012h and earlier. ++ ++LDFLAGS= $(LFLAGS) ++ ++# For leap seconds, this Makefile uses LEAPSECONDS='-L leapseconds' in ++# submake command lines. The default is no leap seconds. ++ ++LEAPSECONDS= ++ ++# The zic command and its arguments. ++ ++zic= ./zic ++ZIC= $(zic) $(ZFLAGS) ++ ++ZFLAGS= ++ ++# How to use zic to install tz binary files. ++ ++ZIC_INSTALL= $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) $(LEAPSECONDS) ++ ++# The name of a Posix-compliant 'awk' on your system. ++AWK= awk ++ ++# The full path name of a Posix-compliant shell, preferably one that supports ++# the Korn shell's 'select' statement as an extension. ++# These days, Bash is the most popular. ++# It should be OK to set this to /bin/sh, on platforms where /bin/sh ++# lacks 'select' or doesn't completely conform to Posix, but /bin/bash ++# is typically nicer if it works. ++KSHELL= /bin/bash ++ ++# The path where SGML DTDs are kept and the catalog file(s) to use when ++# validating. The default should work on both Debian and Red Hat. ++SGML_TOPDIR= /usr ++SGML_DTDDIR= $(SGML_TOPDIR)/share/xml/w3c-sgml-lib/schema/dtd ++SGML_SEARCH_PATH= $(SGML_DTDDIR)/REC-html401-19991224 ++SGML_CATALOG_FILES= \ ++ $(SGML_TOPDIR)/share/doc/w3-recs/html/www.w3.org/TR/1999/REC-html401-19991224/HTML4.cat:$(SGML_TOPDIR)/share/sgml/html/4.01/HTML4.cat ++ ++# The name, arguments and environment of a program to validate your web pages. ++# See for a validator, and ++# for a validation library. ++VALIDATE = nsgmls ++VALIDATE_FLAGS = -s -B -wall -wno-unused-param ++VALIDATE_ENV = \ ++ SGML_CATALOG_FILES=$(SGML_CATALOG_FILES) \ ++ SGML_SEARCH_PATH=$(SGML_SEARCH_PATH) \ ++ SP_CHARSET_FIXED=YES \ ++ SP_ENCODING=UTF-8 ++ ++# This expensive test requires USE_LTZ. ++# To suppress it, define this macro to be empty. ++CHECK_TIME_T_ALTERNATIVES = check_time_t_alternatives ++ ++# SAFE_CHAR is a regular expression that matches a safe character. ++# Some parts of this distribution are limited to safe characters; ++# others can use any UTF-8 character. ++# For now, the safe characters are a safe subset of ASCII. ++# The caller must set the shell variable 'sharp' to the character '#', ++# since Makefile macros cannot contain '#'. ++# TAB_CHAR is a single tab character, in single quotes. ++TAB_CHAR= ' ' ++SAFE_CHARSET1= $(TAB_CHAR)' !\"'$$sharp'$$%&'\''()*+,./0123456789:;<=>?@' ++SAFE_CHARSET2= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`' ++SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~' ++SAFE_CHARSET= $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3) ++SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]' ++ ++# OK_CHAR matches any character allowed in the distributed files. ++# This is the same as SAFE_CHAR, except that multibyte letters are ++# also allowed so that commentary can contain people's names and quote ++# non-English sources. For non-letters the sources are limited to ++# ASCII renderings for the convenience of maintainers whose text editors ++# mishandle UTF-8 by default (e.g., XEmacs 21.4.22). ++OK_CHAR= '[][:alpha:]'$(SAFE_CHARSET)'-]' ++ ++# SAFE_LINE matches a line of safe characters. ++# SAFE_SHARP_LINE is similar, except any OK character can follow '#'; ++# this is so that comments can contain non-ASCII characters. ++# OK_LINE matches a line of OK characters. ++SAFE_LINE= '^'$(SAFE_CHAR)'*$$' ++SAFE_SHARP_LINE='^'$(SAFE_CHAR)'*('$$sharp$(OK_CHAR)'*)?$$' ++OK_LINE= '^'$(OK_CHAR)'*$$' ++ ++# Flags to give 'tar' when making a distribution. ++# Try to use flags appropriate for GNU tar. ++GNUTARFLAGS= --numeric-owner --owner=0 --group=0 --mode=go+u,go-w --sort=name ++TARFLAGS= `if tar $(GNUTARFLAGS) --version >/dev/null 2>&1; \ ++ then echo $(GNUTARFLAGS); \ ++ else :; \ ++ fi` ++ ++# Flags to give 'gzip' when making a distribution. ++GZIPFLAGS= -9n ++ ++############################################################################### ++ ++#MAKE= make ++ ++cc= cc ++CC= $(cc) -DTZDIR=\"$(TZDIR)\" ++ ++AR= ar ++ ++# ':' on typical hosts; 'ranlib' on the ancient hosts that still need ranlib. ++RANLIB= : ++ ++TZCOBJS= zic.o ++TZDOBJS= zdump.o localtime.o asctime.o ++DATEOBJS= date.o localtime.o strftime.o asctime.o ++LIBSRCS= localtime.c asctime.c difftime.c ++LIBOBJS= localtime.o asctime.o difftime.o ++HEADERS= tzfile.h private.h ++NONLIBSRCS= zic.c zdump.c ++NEWUCBSRCS= date.c strftime.c ++SOURCES= $(HEADERS) $(LIBSRCS) $(NONLIBSRCS) $(NEWUCBSRCS) \ ++ tzselect.ksh workman.sh ++MANS= newctime.3 newstrftime.3 newtzset.3 time2posix.3 \ ++ tzfile.5 tzselect.8 zic.8 zdump.8 ++MANTXTS= newctime.3.txt newstrftime.3.txt newtzset.3.txt \ ++ time2posix.3.txt \ ++ tzfile.5.txt tzselect.8.txt zic.8.txt zdump.8.txt \ ++ date.1.txt ++COMMON= CONTRIBUTING LICENSE Makefile NEWS README Theory version ++WEB_PAGES= tz-art.htm tz-how-to.html tz-link.htm ++DOCS= $(MANS) date.1 $(MANTXTS) $(WEB_PAGES) ++PRIMARY_YDATA= africa antarctica asia australasia \ ++ europe northamerica southamerica ++YDATA= $(PRIMARY_YDATA) pacificnew etcetera backward ++NDATA= systemv factory ++TDATA= $(YDATA) $(NDATA) ++ZONETABLES= zone1970.tab zone.tab ++TABDATA= iso3166.tab leapseconds $(ZONETABLES) ++LEAP_DEPS= leapseconds.awk leap-seconds.list ++DATA= $(YDATA) $(NDATA) backzone $(TABDATA) \ ++ leap-seconds.list yearistype.sh ++AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk ++MISC= $(AWK_SCRIPTS) zoneinfo2tdf.pl ++TZS_YEAR= 2050 ++TZS= to$(TZS_YEAR).tzs ++TZS_NEW= to$(TZS_YEAR)new.tzs ++TZS_DEPS= $(PRIMARY_YDATA) asctime.c localtime.c \ ++ private.h tzfile.h zdump.c zic.c ++ENCHILADA= $(COMMON) $(DOCS) $(SOURCES) $(DATA) $(MISC) $(TZS) ++ ++# Consult these files when deciding whether to rebuild the 'version' file. ++# This list is not the same as the output of 'git ls-files', since ++# .gitignore is not distributed. ++VERSION_DEPS= \ ++ CONTRIBUTING LICENSE Makefile NEWS README Theory \ ++ africa antarctica asctime.c asia australasia \ ++ backward backzone \ ++ checklinks.awk checktab.awk \ ++ date.1 date.c difftime.c \ ++ etcetera europe factory iso3166.tab \ ++ leap-seconds.list leapseconds.awk localtime.c \ ++ newctime.3 newstrftime.3 newtzset.3 northamerica \ ++ pacificnew private.h \ ++ southamerica strftime.c systemv \ ++ time2posix.3 tz-art.htm tz-how-to.html tz-link.htm \ ++ tzfile.5 tzfile.h tzselect.8 tzselect.ksh \ ++ workman.sh yearistype.sh \ ++ zdump.8 zdump.c zic.8 zic.c \ ++ zone.tab zone1970.tab zoneinfo2tdf.pl ++ ++# And for the benefit of csh users on systems that assume the user ++# shell should be used to handle commands in Makefiles. . . ++ ++SHELL= /bin/sh ++ ++all: tzselect yearistype zic zdump libtz.a $(TABDATA) ++ ++ALL: all date $(ENCHILADA) ++ ++install: all $(DATA) $(REDO) $(MANS) ++ mkdir -p $(DESTDIR)$(ETCDIR) $(DESTDIR)$(TZDIR) \ ++ $(DESTDIR)$(LIBDIR) \ ++ $(DESTDIR)$(MANDIR)/man3 $(DESTDIR)$(MANDIR)/man5 \ ++ $(DESTDIR)$(MANDIR)/man8 ++ $(ZIC_INSTALL) -l $(LOCALTIME) -p $(POSIXRULES) ++ cp -f iso3166.tab $(ZONETABLES) $(DESTDIR)$(TZDIR)/. ++ cp tzselect zic zdump $(DESTDIR)$(ETCDIR)/. ++ cp libtz.a $(DESTDIR)$(LIBDIR)/. ++ $(RANLIB) $(DESTDIR)$(LIBDIR)/libtz.a ++ cp -f newctime.3 newtzset.3 $(DESTDIR)$(MANDIR)/man3/. ++ cp -f tzfile.5 $(DESTDIR)$(MANDIR)/man5/. ++ cp -f tzselect.8 zdump.8 zic.8 $(DESTDIR)$(MANDIR)/man8/. ++ ++INSTALL: ALL install date.1 ++ mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1 ++ cp date $(DESTDIR)$(BINDIR)/. ++ cp -f date.1 $(DESTDIR)$(MANDIR)/man1/. ++ ++version: $(VERSION_DEPS) ++ { (type git) >/dev/null 2>&1 && \ ++ V=`git describe --match '[0-9][0-9][0-9][0-9][a-z]*' \ ++ --abbrev=7 --dirty` || \ ++ V=$(VERSION); } && \ ++ printf '%s\n' "$$V" >$@.out ++ mv $@.out $@ ++ ++version.h: version ++ VERSION=`cat version` && printf '%s\n' \ ++ 'static char const PKGVERSION[]="($(PACKAGE)) ";' \ ++ "static char const TZVERSION[]=\"$$VERSION\";" \ ++ 'static char const REPORT_BUGS_TO[]="$(BUGEMAIL)";' \ ++ >$@.out ++ mv $@.out $@ ++ ++zdump: $(TZDOBJS) ++ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS) ++ ++zic: $(TZCOBJS) ++ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS) ++ ++yearistype: yearistype.sh ++ cp yearistype.sh yearistype ++ chmod +x yearistype ++ ++leapseconds: $(LEAP_DEPS) ++ $(AWK) -f leapseconds.awk leap-seconds.list >$@.out ++ mv $@.out $@ ++ ++# Arguments to pass to submakes of install_data. ++# They can be overridden by later submake arguments. ++INSTALLARGS = \ ++ DESTDIR=$(DESTDIR) \ ++ LEAPSECONDS='$(LEAPSECONDS)' \ ++ PACKRATDATA='$(PACKRATDATA)' \ ++ TZDIR=$(TZDIR) \ ++ YEARISTYPE=$(YEARISTYPE) \ ++ ZIC='$(ZIC)' ++ ++# 'make install_data' installs one set of tz binary files. ++# It can be tailored by setting LEAPSECONDS, PACKRATDATA, etc. ++install_data: zic leapseconds yearistype $(PACKRATDATA) $(TDATA) ++ $(ZIC_INSTALL) $(TDATA) ++ $(AWK) '/^Rule/' $(TDATA) | $(ZIC_INSTALL) - $(PACKRATDATA) ++ ++posix_only: ++ $(MAKE) $(INSTALLARGS) LEAPSECONDS= install_data ++ ++right_only: ++ $(MAKE) $(INSTALLARGS) LEAPSECONDS='-L leapseconds' \ ++ install_data ++ ++# In earlier versions of this makefile, the other two directories were ++# subdirectories of $(TZDIR). However, this led to configuration errors. ++# For example, with posix_right under the earlier scheme, ++# TZ='right/Australia/Adelaide' got you localtime with leap seconds, ++# but gmtime without leap seconds, which led to problems with applications ++# like sendmail that subtract gmtime from localtime. ++# Therefore, the other two directories are now siblings of $(TZDIR). ++# You must replace all of $(TZDIR) to switch from not using leap seconds ++# to using them, or vice versa. ++right_posix: right_only ++ rm -fr $(DESTDIR)$(TZDIR)-leaps ++ ln -s $(TZDIR_BASENAME) $(DESTDIR)$(TZDIR)-leaps || \ ++ $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-leaps right_only ++ $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-posix posix_only ++ ++posix_right: posix_only ++ rm -fr $(DESTDIR)$(TZDIR)-posix ++ ln -s $(TZDIR_BASENAME) $(DESTDIR)$(TZDIR)-posix || \ ++ $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-posix posix_only ++ $(MAKE) $(INSTALLARGS) TZDIR=$(TZDIR)-leaps right_only ++ ++# This obsolescent rule is present for backwards compatibility with ++# tz releases 2014g through 2015g. It should go away eventually. ++posix_packrat: ++ $(MAKE) $(INSTALLARGS) PACKRATDATA=backzone posix_only ++ ++zones: $(REDO) ++ ++$(TZS_NEW): $(TDATA) zdump zic ++ mkdir -p tzs.dir ++ $(zic) -d tzs.dir $(TDATA) ++ $(AWK) '/^Link/{print $$1 "\t" $$2 "\t" $$3}' \ ++ $(TDATA) | LC_ALL=C sort >$@.out ++ wd=`pwd` && \ ++ zones=`$(AWK) -v wd="$$wd" \ ++ '/^Zone/{print wd "/tzs.dir/" $$2}' $(TDATA) \ ++ | LC_ALL=C sort` && \ ++ ./zdump -i -c $(TZS_YEAR) $$zones >>$@.out ++ sed 's,^TZ=".*tzs\.dir/,TZ=",' $@.out >$@.sed.out ++ rm -fr tzs.dir $@.out ++ mv $@.sed.out $@ ++ ++# If $(TZS) does not already exist (e.g., old-format tarballs), create it. ++# If it exists but 'make check_tzs' fails, a maintainer should inspect the ++# failed output and fix the inconsistency, perhaps by running 'make force_tzs'. ++$(TZS): ++ $(MAKE) force_tzs ++ ++force_tzs: $(TZS_NEW) ++ cp $(TZS_NEW) $(TZS) ++ ++libtz.a: $(LIBOBJS) ++ $(AR) ru $@ $(LIBOBJS) ++ $(RANLIB) $@ ++ ++date: $(DATEOBJS) ++ $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(DATEOBJS) $(LDLIBS) ++ ++tzselect: tzselect.ksh version ++ VERSION=`cat version` && sed \ ++ -e 's|#!/bin/bash|#!$(KSHELL)|g' \ ++ -e 's|AWK=[^}]*|AWK=$(AWK)|g' \ ++ -e 's|\(PKGVERSION\)=.*|\1='\''($(PACKAGE)) '\''|' \ ++ -e 's|\(REPORT_BUGS_TO\)=.*|\1=$(BUGEMAIL)|' \ ++ -e 's|TZDIR=[^}]*|TZDIR=$(TZDIR)|' \ ++ -e 's|\(TZVERSION\)=.*|\1='"$$VERSION"'|' \ ++ <$@.ksh >$@.out ++ chmod +x $@.out ++ mv $@.out $@ ++ ++check: check_character_set check_white_space check_links check_sorted \ ++ check_tables check_tzs check_web ++ ++check_character_set: $(ENCHILADA) ++ LC_ALL=en_US.utf8 && export LC_ALL && \ ++ sharp='#' && \ ++ ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \ ++ $(MISC) $(SOURCES) $(WEB_PAGES) \ ++ CONTRIBUTING LICENSE Makefile README version && \ ++ ! grep -Env $(SAFE_SHARP_LINE) $(TDATA) backzone \ ++ leapseconds yearistype.sh zone.tab && \ ++ ! grep -Env $(OK_LINE) $(ENCHILADA) ++ ++check_white_space: $(ENCHILADA) ++ patfmt=' \t|[\f\r\v]' && pat=`printf "$$patfmt\\n"` && \ ++ ! grep -En "$$pat" $(ENCHILADA) ++ ! grep -n '[[:space:]]$$' $(ENCHILADA) ++ ++CHECK_CC_LIST = { n = split($$1,a,/,/); for (i=2; i<=n; i++) print a[1], a[i]; } ++ ++check_sorted: backward backzone iso3166.tab zone.tab zone1970.tab ++ $(AWK) '/^Link/ {print $$3}' backward | LC_ALL=C sort -cu ++ $(AWK) '/^Zone/ {print $$2}' backzone | LC_ALL=C sort -cu ++ $(AWK) '/^[^#]/ {print $$1}' iso3166.tab | LC_ALL=C sort -cu ++ $(AWK) '/^[^#]/ {print $$1}' zone.tab | LC_ALL=C sort -c ++ $(AWK) '/^[^#]/ {print substr($$0, 1, 2)}' zone1970.tab | \ ++ LC_ALL=C sort -c ++ $(AWK) '/^[^#]/ $(CHECK_CC_LIST)' zone1970.tab | \ ++ LC_ALL=C sort -cu ++ ++check_links: checklinks.awk $(TDATA) ++ $(AWK) -f checklinks.awk $(TDATA) ++ ++check_tables: checktab.awk $(PRIMARY_YDATA) $(ZONETABLES) ++ for tab in $(ZONETABLES); do \ ++ $(AWK) -f checktab.awk -v zone_table=$$tab $(PRIMARY_YDATA) \ ++ || exit; \ ++ done ++ ++check_tzs: $(TZS) $(TZS_NEW) ++ diff -u $(TZS) $(TZS_NEW) ++ ++check_web: $(WEB_PAGES) ++ $(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) $(WEB_PAGES) ++ ++clean_misc: ++ rm -f core *.o *.out \ ++ date tzselect version.h zdump zic yearistype libtz.a ++clean: clean_misc ++ rm -fr *.dir tzdb-*/ $(TZS_NEW) ++ ++maintainer-clean: clean ++ @echo 'This command is intended for maintainers to use; it' ++ @echo 'deletes files that may need special tools to rebuild.' ++ rm -f leapseconds version $(MANTXTS) $(TZS) *.asc *.tar.* ++ ++names: ++ @echo $(ENCHILADA) ++ ++public: check check_public $(CHECK_TIME_T_ALTERNATIVES) \ ++ tarballs signatures ++ ++date.1.txt: date.1 ++newctime.3.txt: newctime.3 ++newstrftime.3.txt: newstrftime.3 ++newtzset.3.txt: newtzset.3 ++time2posix.3.txt: time2posix.3 ++tzfile.5.txt: tzfile.5 ++tzselect.8.txt: tzselect.8 ++zdump.8.txt: zdump.8 ++zic.8.txt: zic.8 ++ ++$(MANTXTS): workman.sh ++ LC_ALL=C sh workman.sh `expr $@ : '\(.*\)\.txt$$'` >$@.out ++ mv $@.out $@ ++ ++# Set the time stamps to those of the git repository, if available, ++# and if the files have not changed since then. ++# This uses GNU 'touch' syntax 'touch -d@N FILE', ++# where N is the number of seconds since 1970. ++# If git or GNU 'touch' is absent, don't bother to sync with git timestamps. ++# Also, set the timestamp of each prebuilt file like 'leapseconds' ++# to be the maximum of the files it depends on. ++set-timestamps.out: $(ENCHILADA) ++ rm -f $@ ++ if (type git) >/dev/null 2>&1 && \ ++ files=`git ls-files $(ENCHILADA)` && \ ++ touch -md @1 test.out; then \ ++ rm -f test.out && \ ++ for file in $$files; do \ ++ if git diff --quiet $$file; then \ ++ time=`git log -1 --format='tformat:%ct' $$file` && \ ++ touch -cmd @$$time $$file; \ ++ else \ ++ echo >&2 "$$file: warning: does not match repository"; \ ++ fi || exit; \ ++ done; \ ++ fi ++ touch -cmr `ls -t $(LEAP_DEPS) | sed 1q` leapseconds ++ for file in `ls $(MANTXTS) | sed 's/\.txt$$//'`; do \ ++ touch -cmr `ls -t $$file workman.sh | sed 1q` $$file.txt || \ ++ exit; \ ++ done ++ touch -cmr `ls -t $(TZS_DEPS) | sed 1q` $(TZS) ++ touch -cmr `ls -t $(VERSION_DEPS) | sed 1q` version ++ touch $@ ++ ++# The zics below ensure that each data file can stand on its own. ++# We also do an all-files run to catch links to links. ++ ++check_public: ++ $(MAKE) maintainer-clean ++ $(MAKE) "CFLAGS=$(GCC_DEBUG_FLAGS)" ALL ++ mkdir -p public.dir ++ for i in $(TDATA) ; do \ ++ $(zic) -v -d public.dir $$i 2>&1 || exit; \ ++ done ++ $(zic) -v -d public.dir $(TDATA) ++ rm -fr public.dir ++ ++# Check that the code works under various alternative ++# implementations of time_t. ++check_time_t_alternatives: ++ if diff -q Makefile Makefile 2>/dev/null; then \ ++ quiet_option='-q'; \ ++ else \ ++ quiet_option=''; \ ++ fi && \ ++ wd=`pwd` && \ ++ zones=`$(AWK) '/^[^#]/ { print $$3 }' time_t.dir/int64_t.out && \ ++ time_t.dir/$$type/etc/zdump -V -t $$range $$zones \ ++ >time_t.dir/$$type.out && \ ++ diff -u time_t.dir/int64_t.out time_t.dir/$$type.out \ ++ || exit; \ ++ done ++ rm -fr time_t.dir ++ ++tarballs traditional_tarballs signatures traditional_signatures: version ++ VERSION=`cat version` && \ ++ $(MAKE) VERSION="$$VERSION" $@_version ++ ++tarballs_version: traditional_tarballs_version tzdb-$(VERSION).tar.lz ++traditional_tarballs_version: \ ++ tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz ++signatures_version: traditional_signatures_version tzdb-$(VERSION).tar.lz.asc ++traditional_signatures_version: \ ++ tzcode$(VERSION).tar.gz.asc tzdata$(VERSION).tar.gz.asc \ ++ ++tzcode$(VERSION).tar.gz: set-timestamps.out ++ LC_ALL=C && export LC_ALL && \ ++ tar $(TARFLAGS) -cf - \ ++ $(COMMON) $(DOCS) $(SOURCES) | \ ++ gzip $(GZIPFLAGS) >$@.out ++ mv $@.out $@ ++ ++tzdata$(VERSION).tar.gz: set-timestamps.out ++ LC_ALL=C && export LC_ALL && \ ++ tar $(TARFLAGS) -cf - $(COMMON) $(DATA) $(MISC) | \ ++ gzip $(GZIPFLAGS) >$@.out ++ mv $@.out $@ ++ ++tzdb-$(VERSION).tar.lz: set-timestamps.out ++ rm -fr tzdb-$(VERSION) ++ mkdir tzdb-$(VERSION) ++ ln $(ENCHILADA) tzdb-$(VERSION) ++ touch -cmr `ls -t tzdb-$(VERSION)/* | sed 1q` tzdb-$(VERSION) ++ LC_ALL=C && export LC_ALL && \ ++ tar $(TARFLAGS) -cf - tzdb-$(VERSION) | lzip -9 >$@.out ++ mv $@.out $@ ++ ++tzcode$(VERSION).tar.gz.asc: tzcode$(VERSION).tar.gz ++ gpg --armor --detach-sign $? ++ ++tzdata$(VERSION).tar.gz.asc: tzdata$(VERSION).tar.gz ++ gpg --armor --detach-sign $? ++ ++tzdb-$(VERSION).tar.lz.asc: tzdb-$(VERSION).tar.lz ++ gpg --armor --detach-sign $? ++ ++typecheck: ++ $(MAKE) clean ++ for i in "long long" unsigned; \ ++ do \ ++ $(MAKE) CFLAGS="-DTYPECHECK -D__time_t_defined -D_TIME_T \"-Dtime_t=$$i\"" ; \ ++ ./zdump -v Europe/Rome ; \ ++ $(MAKE) clean ; \ ++ done ++ ++zonenames: $(TDATA) ++ @$(AWK) '/^Zone/ { print $$2 } /^Link/ { print $$3 }' $(TDATA) ++ ++asctime.o: private.h tzfile.h ++date.o: private.h ++difftime.o: private.h ++localtime.o: private.h tzfile.h ++strftime.o: private.h tzfile.h ++zdump.o: version.h ++zic.o: private.h tzfile.h version.h ++ ++.KEEP_STATE: ++ ++.PHONY: ALL INSTALL all ++.PHONY: check check_character_set check_links ++.PHONY: check_public check_sorted check_tables ++.PHONY: check_time_t_alternatives check_tzs check_web check_white_space ++.PHONY: clean clean_misc force_tzs ++.PHONY: install install_data maintainer-clean names ++.PHONY: posix_only posix_packrat posix_right ++.PHONY: public right_only right_posix signatures signatures_version ++.PHONY: tarballs tarballs_version typecheck ++.PHONY: zonenames zones ++native +\ No newline at end of property ++FreeBSD=%H +\ No newline at end of property ++text/plain +\ No newline at end of property +--- contrib/tzdata/NEWS.orig ++++ contrib/tzdata/NEWS +@@ -0,0 +1,3782 @@ ++News for the tz database ++ ++Release 2016i - 2016-11-01 23:19:52 -0700 ++ ++ Briefly: Cyprus split into two time zones on 2016-10-30, and Tonga ++ reintroduces DST on 2016-11-06. ++ ++ Changes to future time stamps ++ ++ Pacific/Tongatapu begins DST on 2016-11-06 at 02:00, ending on ++ 2017-01-15 at 03:00. Assume future observances in Tonga will be ++ from the first Sunday in November through the third Sunday in ++ January, like Fiji. (Thanks to Pulu ʻAnau.) Switch to numeric ++ time zone abbreviations for this zone. ++ ++ Changes to past and future time stamps ++ ++ Northern Cyprus is now +03 year round, causing a split in Cyprus ++ time zones starting 2016-10-30 at 04:00. This creates a zone ++ Asia/Famagusta. (Thanks to Even Scharning and Matt Johnson.) ++ ++ Antarctica/Casey switched from +08 to +11 on 2016-10-22. ++ (Thanks to Steffen Thorsen.) ++ ++ Changes to past time stamps ++ ++ Several corrections were made for pre-1975 time stamps in Italy. ++ These affect Europe/Malta, Europe/Rome, Europe/San_Marino, and ++ Europe/Vatican. ++ ++ First, the 1893-11-01 00:00 transition in Italy used the new UT ++ offset (+01), not the old (+00:49:56). (Thanks to Michael ++ Deckers.) ++ ++ Second, rules for daylight saving in Italy were changed to agree ++ with Italy's National Institute of Metrological Research (INRiM) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Tue Dec 6 18:35:12 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2D209C6A19C for ; Tue, 6 Dec 2016 18:35:12 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F1035ADA; Tue, 6 Dec 2016 18:35:11 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id uB6IZBPp012716; Tue, 6 Dec 2016 18:35:11 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id uB6IZBZb012715; Tue, 6 Dec 2016 18:35:11 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201612061835.uB6IZBZb012715@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Tue, 6 Dec 2016 18:35:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r309632 - user/cperciva/freebsd-update-build/scripts X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Dec 2016 18:35:12 -0000 Author: glebius Date: Tue Dec 6 18:35:10 2016 New Revision: 309632 URL: https://svnweb.freebsd.org/changeset/base/309632 Log: Improve the hint. Modified: user/cperciva/freebsd-update-build/scripts/approve.sh Modified: user/cperciva/freebsd-update-build/scripts/approve.sh ============================================================================== --- user/cperciva/freebsd-update-build/scripts/approve.sh Tue Dec 6 18:22:25 2016 (r309631) +++ user/cperciva/freebsd-update-build/scripts/approve.sh Tue Dec 6 18:35:10 2016 (r309632) @@ -50,7 +50,7 @@ cat <<-EOF The FreeBSD/${TARGET} ${RELP} update build has been signed and is ready to be uploaded. Remember to run - # sh -e umountkey.sh + # sh -e scripts/umountkey.sh to unmount the decrypted key once you have finished signing all the new builds. EOF From owner-svn-src-user@freebsd.org Tue Dec 6 19:19:20 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 758F9C6A92A for ; Tue, 6 Dec 2016 19:19:20 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 43DC3DA4; Tue, 6 Dec 2016 19:19:20 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id uB6JJJxF029848; Tue, 6 Dec 2016 19:19:19 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id uB6JJIfl029833; Tue, 6 Dec 2016 19:19:18 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201612061919.uB6JJIfl029833@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Tue, 6 Dec 2016 19:19:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r309651 - in user/cperciva/freebsd-update-build/patches: 10.1-RELEASE 10.2-RELEASE 10.3-RELEASE 11.0-RELEASE 9.3-RELEASE X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Dec 2016 19:19:20 -0000 Author: glebius Date: Tue Dec 6 19:19:17 2016 New Revision: 309651 URL: https://svnweb.freebsd.org/changeset/base/309651 Log: Publish SA-16:36, SA-16:37, SA-16:38. Added: user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-SA-16:36.telnetd user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-SA-16:37.libc user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-SA-16:38.bhyve user/cperciva/freebsd-update-build/patches/10.2-RELEASE/26-SA-16:36.telnetd user/cperciva/freebsd-update-build/patches/10.2-RELEASE/26-SA-16:37.libc user/cperciva/freebsd-update-build/patches/10.2-RELEASE/26-SA-16:38.bhyve user/cperciva/freebsd-update-build/patches/10.3-RELEASE/13-SA-16:36.telnetd user/cperciva/freebsd-update-build/patches/10.3-RELEASE/13-SA-16:37.libc user/cperciva/freebsd-update-build/patches/10.3-RELEASE/13-SA-16:38.bhyve user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-SA-16:36.telnetd user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-SA-16:37.libc user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-SA-16:38.bhyve user/cperciva/freebsd-update-build/patches/9.3-RELEASE/51-SA-16:36.telnetd user/cperciva/freebsd-update-build/patches/9.3-RELEASE/51-SA-16:37.libc Added: user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-SA-16:36.telnetd ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-SA-16:36.telnetd Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,26 @@ +--- contrib/telnet/telnetd/sys_term.c.orig ++++ contrib/telnet/telnetd/sys_term.c +@@ -1159,7 +1159,7 @@ + */ + argv = (char **)malloc(sizeof(*argv) * 12); + if (argv == NULL) +- return(NULL); ++ fatal(net, "failure allocating argument space"); + *argv++ = (char *)10; + *argv = (char *)0; + } +@@ -1170,11 +1170,12 @@ + *argv = (char *)((long)(*argv) + 10); + argv = (char **)realloc(argv, sizeof(*argv)*((long)(*argv) + 2)); + if (argv == NULL) +- return(NULL); ++ fatal(net, "failure allocating argument space"); + argv++; + cpp = &argv[(long)argv[-1] - 10]; + } +- *cpp++ = strdup(val); ++ if ((*cpp++ = strdup(val)) == NULL) ++ fatal(net, "failure allocating argument space"); + *cpp = 0; + return(argv); + } Added: user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-SA-16:37.libc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-SA-16:37.libc Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,75 @@ +--- lib/libc/net/linkaddr.c.orig ++++ lib/libc/net/linkaddr.c +@@ -35,6 +35,7 @@ + + #include + #include ++#include + #include + #include + +@@ -122,31 +123,47 @@ + link_ntoa(const struct sockaddr_dl *sdl) + { + static char obuf[64]; +- char *out = obuf; +- int i; +- u_char *in = (u_char *)LLADDR(sdl); +- u_char *inlim = in + sdl->sdl_alen; +- int firsttime = 1; ++ _Static_assert(sizeof(obuf) >= IFNAMSIZ + 20, "obuf is too small"); ++ char *out; ++ const char *in, *inlim; ++ int namelen, i, rem; + +- if (sdl->sdl_nlen) { +- bcopy(sdl->sdl_data, obuf, sdl->sdl_nlen); +- out += sdl->sdl_nlen; +- if (sdl->sdl_alen) ++ namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ; ++ ++ out = obuf; ++ rem = sizeof(obuf); ++ if (namelen > 0) { ++ bcopy(sdl->sdl_data, out, namelen); ++ out += namelen; ++ rem -= namelen; ++ if (sdl->sdl_alen > 0) { + *out++ = ':'; ++ rem--; ++ } + } +- while (in < inlim) { +- if (firsttime) +- firsttime = 0; +- else ++ ++ in = (const char *)sdl->sdl_data + sdl->sdl_nlen; ++ inlim = in + sdl->sdl_alen; ++ ++ while (in < inlim && rem > 1) { ++ if (in != (const char *)sdl->sdl_data + sdl->sdl_nlen) { + *out++ = '.'; ++ rem--; ++ } + i = *in++; + if (i > 0xf) { +- out[1] = hexlist[i & 0xf]; ++ if (rem < 3) ++ break; ++ *out++ = hexlist[i & 0xf]; + i >>= 4; +- out[0] = hexlist[i]; +- out += 2; +- } else + *out++ = hexlist[i]; ++ rem -= 2; ++ } else { ++ if (rem < 2) ++ break; ++ *out++ = hexlist[i]; ++ rem++; ++ } + } + *out = 0; + return (obuf); Added: user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-SA-16:38.bhyve ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.1-RELEASE/43-SA-16:38.bhyve Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,19 @@ +--- lib/libvmmapi/vmmapi.c.orig ++++ lib/libvmmapi/vmmapi.c +@@ -263,12 +263,14 @@ + /* XXX VM_MMAP_SPARSE not implemented yet */ + assert(ctx->vms == VM_MMAP_ALL); + +- if (gaddr < ctx->lowmem && gaddr + len <= ctx->lowmem) ++ if (gaddr < ctx->lowmem && len <= ctx->lowmem && ++ gaddr + len <= ctx->lowmem) + return ((void *)(ctx->lowmem_addr + gaddr)); + + if (gaddr >= 4*GB) { + gaddr -= 4*GB; +- if (gaddr < ctx->highmem && gaddr + len <= ctx->highmem) ++ if (gaddr < ctx->highmem && len <= ctx->highmem && ++ gaddr + len <= ctx->highmem) + return ((void *)(ctx->highmem_addr + gaddr)); + } + Added: user/cperciva/freebsd-update-build/patches/10.2-RELEASE/26-SA-16:36.telnetd ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.2-RELEASE/26-SA-16:36.telnetd Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,26 @@ +--- contrib/telnet/telnetd/sys_term.c.orig ++++ contrib/telnet/telnetd/sys_term.c +@@ -1159,7 +1159,7 @@ + */ + argv = (char **)malloc(sizeof(*argv) * 12); + if (argv == NULL) +- return(NULL); ++ fatal(net, "failure allocating argument space"); + *argv++ = (char *)10; + *argv = (char *)0; + } +@@ -1170,11 +1170,12 @@ + *argv = (char *)((long)(*argv) + 10); + argv = (char **)realloc(argv, sizeof(*argv)*((long)(*argv) + 2)); + if (argv == NULL) +- return(NULL); ++ fatal(net, "failure allocating argument space"); + argv++; + cpp = &argv[(long)argv[-1] - 10]; + } +- *cpp++ = strdup(val); ++ if ((*cpp++ = strdup(val)) == NULL) ++ fatal(net, "failure allocating argument space"); + *cpp = 0; + return(argv); + } Added: user/cperciva/freebsd-update-build/patches/10.2-RELEASE/26-SA-16:37.libc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.2-RELEASE/26-SA-16:37.libc Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,75 @@ +--- lib/libc/net/linkaddr.c.orig ++++ lib/libc/net/linkaddr.c +@@ -35,6 +35,7 @@ + + #include + #include ++#include + #include + #include + +@@ -122,31 +123,47 @@ + link_ntoa(const struct sockaddr_dl *sdl) + { + static char obuf[64]; +- char *out = obuf; +- int i; +- u_char *in = (u_char *)LLADDR(sdl); +- u_char *inlim = in + sdl->sdl_alen; +- int firsttime = 1; ++ _Static_assert(sizeof(obuf) >= IFNAMSIZ + 20, "obuf is too small"); ++ char *out; ++ const char *in, *inlim; ++ int namelen, i, rem; + +- if (sdl->sdl_nlen) { +- bcopy(sdl->sdl_data, obuf, sdl->sdl_nlen); +- out += sdl->sdl_nlen; +- if (sdl->sdl_alen) ++ namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ; ++ ++ out = obuf; ++ rem = sizeof(obuf); ++ if (namelen > 0) { ++ bcopy(sdl->sdl_data, out, namelen); ++ out += namelen; ++ rem -= namelen; ++ if (sdl->sdl_alen > 0) { + *out++ = ':'; ++ rem--; ++ } + } +- while (in < inlim) { +- if (firsttime) +- firsttime = 0; +- else ++ ++ in = (const char *)sdl->sdl_data + sdl->sdl_nlen; ++ inlim = in + sdl->sdl_alen; ++ ++ while (in < inlim && rem > 1) { ++ if (in != (const char *)sdl->sdl_data + sdl->sdl_nlen) { + *out++ = '.'; ++ rem--; ++ } + i = *in++; + if (i > 0xf) { +- out[1] = hexlist[i & 0xf]; ++ if (rem < 3) ++ break; ++ *out++ = hexlist[i & 0xf]; + i >>= 4; +- out[0] = hexlist[i]; +- out += 2; +- } else + *out++ = hexlist[i]; ++ rem -= 2; ++ } else { ++ if (rem < 2) ++ break; ++ *out++ = hexlist[i]; ++ rem++; ++ } + } + *out = 0; + return (obuf); Added: user/cperciva/freebsd-update-build/patches/10.2-RELEASE/26-SA-16:38.bhyve ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.2-RELEASE/26-SA-16:38.bhyve Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,19 @@ +--- lib/libvmmapi/vmmapi.c.orig ++++ lib/libvmmapi/vmmapi.c +@@ -263,12 +263,14 @@ + /* XXX VM_MMAP_SPARSE not implemented yet */ + assert(ctx->vms == VM_MMAP_ALL); + +- if (gaddr < ctx->lowmem && gaddr + len <= ctx->lowmem) ++ if (gaddr < ctx->lowmem && len <= ctx->lowmem && ++ gaddr + len <= ctx->lowmem) + return ((void *)(ctx->lowmem_addr + gaddr)); + + if (gaddr >= 4*GB) { + gaddr -= 4*GB; +- if (gaddr < ctx->highmem && gaddr + len <= ctx->highmem) ++ if (gaddr < ctx->highmem && len <= ctx->highmem && ++ gaddr + len <= ctx->highmem) + return ((void *)(ctx->highmem_addr + gaddr)); + } + Added: user/cperciva/freebsd-update-build/patches/10.3-RELEASE/13-SA-16:36.telnetd ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.3-RELEASE/13-SA-16:36.telnetd Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,26 @@ +--- contrib/telnet/telnetd/sys_term.c.orig ++++ contrib/telnet/telnetd/sys_term.c +@@ -1159,7 +1159,7 @@ + */ + argv = (char **)malloc(sizeof(*argv) * 12); + if (argv == NULL) +- return(NULL); ++ fatal(net, "failure allocating argument space"); + *argv++ = (char *)10; + *argv = (char *)0; + } +@@ -1170,11 +1170,12 @@ + *argv = (char *)((long)(*argv) + 10); + argv = (char **)realloc(argv, sizeof(*argv)*((long)(*argv) + 2)); + if (argv == NULL) +- return(NULL); ++ fatal(net, "failure allocating argument space"); + argv++; + cpp = &argv[(long)argv[-1] - 10]; + } +- *cpp++ = strdup(val); ++ if ((*cpp++ = strdup(val)) == NULL) ++ fatal(net, "failure allocating argument space"); + *cpp = 0; + return(argv); + } Added: user/cperciva/freebsd-update-build/patches/10.3-RELEASE/13-SA-16:37.libc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.3-RELEASE/13-SA-16:37.libc Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,75 @@ +--- lib/libc/net/linkaddr.c.orig ++++ lib/libc/net/linkaddr.c +@@ -35,6 +35,7 @@ + + #include + #include ++#include + #include + #include + +@@ -122,31 +123,47 @@ + link_ntoa(const struct sockaddr_dl *sdl) + { + static char obuf[64]; +- char *out = obuf; +- int i; +- u_char *in = (u_char *)LLADDR(sdl); +- u_char *inlim = in + sdl->sdl_alen; +- int firsttime = 1; ++ _Static_assert(sizeof(obuf) >= IFNAMSIZ + 20, "obuf is too small"); ++ char *out; ++ const char *in, *inlim; ++ int namelen, i, rem; + +- if (sdl->sdl_nlen) { +- bcopy(sdl->sdl_data, obuf, sdl->sdl_nlen); +- out += sdl->sdl_nlen; +- if (sdl->sdl_alen) ++ namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ; ++ ++ out = obuf; ++ rem = sizeof(obuf); ++ if (namelen > 0) { ++ bcopy(sdl->sdl_data, out, namelen); ++ out += namelen; ++ rem -= namelen; ++ if (sdl->sdl_alen > 0) { + *out++ = ':'; ++ rem--; ++ } + } +- while (in < inlim) { +- if (firsttime) +- firsttime = 0; +- else ++ ++ in = (const char *)sdl->sdl_data + sdl->sdl_nlen; ++ inlim = in + sdl->sdl_alen; ++ ++ while (in < inlim && rem > 1) { ++ if (in != (const char *)sdl->sdl_data + sdl->sdl_nlen) { + *out++ = '.'; ++ rem--; ++ } + i = *in++; + if (i > 0xf) { +- out[1] = hexlist[i & 0xf]; ++ if (rem < 3) ++ break; ++ *out++ = hexlist[i & 0xf]; + i >>= 4; +- out[0] = hexlist[i]; +- out += 2; +- } else + *out++ = hexlist[i]; ++ rem -= 2; ++ } else { ++ if (rem < 2) ++ break; ++ *out++ = hexlist[i]; ++ rem++; ++ } + } + *out = 0; + return (obuf); Added: user/cperciva/freebsd-update-build/patches/10.3-RELEASE/13-SA-16:38.bhyve ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/10.3-RELEASE/13-SA-16:38.bhyve Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,24 @@ +--- lib/libvmmapi/vmmapi.c.orig ++++ lib/libvmmapi/vmmapi.c +@@ -426,13 +426,18 @@ + { + + if (ctx->lowmem > 0) { +- if (gaddr < ctx->lowmem && gaddr + len <= ctx->lowmem) ++ if (gaddr < ctx->lowmem && len <= ctx->lowmem && ++ gaddr + len <= ctx->lowmem) + return (ctx->baseaddr + gaddr); + } + + if (ctx->highmem > 0) { +- if (gaddr >= 4*GB && gaddr + len <= 4*GB + ctx->highmem) +- return (ctx->baseaddr + gaddr); ++ if (gaddr >= 4*GB) { ++ if (gaddr < 4*GB + ctx->highmem && ++ len <= ctx->highmem && ++ gaddr + len <= 4*GB + ctx->highmem) ++ return (ctx->baseaddr + gaddr); ++ } + } + + return (NULL); Added: user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-SA-16:36.telnetd ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-SA-16:36.telnetd Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,26 @@ +--- contrib/telnet/telnetd/sys_term.c.orig ++++ contrib/telnet/telnetd/sys_term.c +@@ -1159,7 +1159,7 @@ + */ + argv = (char **)malloc(sizeof(*argv) * 12); + if (argv == NULL) +- return(NULL); ++ fatal(net, "failure allocating argument space"); + *argv++ = (char *)10; + *argv = (char *)0; + } +@@ -1170,11 +1170,12 @@ + *argv = (char *)((long)(*argv) + 10); + argv = (char **)realloc(argv, sizeof(*argv)*((long)(*argv) + 2)); + if (argv == NULL) +- return(NULL); ++ fatal(net, "failure allocating argument space"); + argv++; + cpp = &argv[(long)argv[-1] - 10]; + } +- *cpp++ = strdup(val); ++ if ((*cpp++ = strdup(val)) == NULL) ++ fatal(net, "failure allocating argument space"); + *cpp = 0; + return(argv); + } Added: user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-SA-16:37.libc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-SA-16:37.libc Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,75 @@ +--- lib/libc/net/linkaddr.c.orig ++++ lib/libc/net/linkaddr.c +@@ -35,6 +35,7 @@ + + #include + #include ++#include + #include + #include + +@@ -122,31 +123,47 @@ + link_ntoa(const struct sockaddr_dl *sdl) + { + static char obuf[64]; +- char *out = obuf; +- int i; +- u_char *in = (u_char *)LLADDR(sdl); +- u_char *inlim = in + sdl->sdl_alen; +- int firsttime = 1; ++ _Static_assert(sizeof(obuf) >= IFNAMSIZ + 20, "obuf is too small"); ++ char *out; ++ const char *in, *inlim; ++ int namelen, i, rem; + +- if (sdl->sdl_nlen) { +- bcopy(sdl->sdl_data, obuf, sdl->sdl_nlen); +- out += sdl->sdl_nlen; +- if (sdl->sdl_alen) ++ namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ; ++ ++ out = obuf; ++ rem = sizeof(obuf); ++ if (namelen > 0) { ++ bcopy(sdl->sdl_data, out, namelen); ++ out += namelen; ++ rem -= namelen; ++ if (sdl->sdl_alen > 0) { + *out++ = ':'; ++ rem--; ++ } + } +- while (in < inlim) { +- if (firsttime) +- firsttime = 0; +- else ++ ++ in = (const char *)sdl->sdl_data + sdl->sdl_nlen; ++ inlim = in + sdl->sdl_alen; ++ ++ while (in < inlim && rem > 1) { ++ if (in != (const char *)sdl->sdl_data + sdl->sdl_nlen) { + *out++ = '.'; ++ rem--; ++ } + i = *in++; + if (i > 0xf) { +- out[1] = hexlist[i & 0xf]; ++ if (rem < 3) ++ break; ++ *out++ = hexlist[i & 0xf]; + i >>= 4; +- out[0] = hexlist[i]; +- out += 2; +- } else + *out++ = hexlist[i]; ++ rem -= 2; ++ } else { ++ if (rem < 2) ++ break; ++ *out++ = hexlist[i]; ++ rem++; ++ } + } + *out = 0; + return (obuf); Added: user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-SA-16:38.bhyve ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/11.0-RELEASE/4-SA-16:38.bhyve Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,24 @@ +--- lib/libvmmapi/vmmapi.c.orig ++++ lib/libvmmapi/vmmapi.c +@@ -426,13 +426,18 @@ + { + + if (ctx->lowmem > 0) { +- if (gaddr < ctx->lowmem && gaddr + len <= ctx->lowmem) ++ if (gaddr < ctx->lowmem && len <= ctx->lowmem && ++ gaddr + len <= ctx->lowmem) + return (ctx->baseaddr + gaddr); + } + + if (ctx->highmem > 0) { +- if (gaddr >= 4*GB && gaddr + len <= 4*GB + ctx->highmem) +- return (ctx->baseaddr + gaddr); ++ if (gaddr >= 4*GB) { ++ if (gaddr < 4*GB + ctx->highmem && ++ len <= ctx->highmem && ++ gaddr + len <= 4*GB + ctx->highmem) ++ return (ctx->baseaddr + gaddr); ++ } + } + + return (NULL); Added: user/cperciva/freebsd-update-build/patches/9.3-RELEASE/51-SA-16:36.telnetd ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/9.3-RELEASE/51-SA-16:36.telnetd Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,26 @@ +--- contrib/telnet/telnetd/sys_term.c.orig ++++ contrib/telnet/telnetd/sys_term.c +@@ -1159,7 +1159,7 @@ + */ + argv = (char **)malloc(sizeof(*argv) * 12); + if (argv == NULL) +- return(NULL); ++ fatal(net, "failure allocating argument space"); + *argv++ = (char *)10; + *argv = (char *)0; + } +@@ -1170,11 +1170,12 @@ + *argv = (char *)((long)(*argv) + 10); + argv = (char **)realloc(argv, sizeof(*argv)*((long)(*argv) + 2)); + if (argv == NULL) +- return(NULL); ++ fatal(net, "failure allocating argument space"); + argv++; + cpp = &argv[(long)argv[-1] - 10]; + } +- *cpp++ = strdup(val); ++ if ((*cpp++ = strdup(val)) == NULL) ++ fatal(net, "failure allocating argument space"); + *cpp = 0; + return(argv); + } Added: user/cperciva/freebsd-update-build/patches/9.3-RELEASE/51-SA-16:37.libc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/cperciva/freebsd-update-build/patches/9.3-RELEASE/51-SA-16:37.libc Tue Dec 6 19:19:17 2016 (r309651) @@ -0,0 +1,75 @@ +--- lib/libc/net/linkaddr.c.orig ++++ lib/libc/net/linkaddr.c +@@ -35,6 +35,7 @@ + + #include + #include ++#include + #include + #include + +@@ -122,31 +123,47 @@ + link_ntoa(const struct sockaddr_dl *sdl) + { + static char obuf[64]; +- char *out = obuf; +- int i; +- u_char *in = (u_char *)LLADDR(sdl); +- u_char *inlim = in + sdl->sdl_alen; +- int firsttime = 1; ++ _Static_assert(sizeof(obuf) >= IFNAMSIZ + 20, "obuf is too small"); ++ char *out; ++ const char *in, *inlim; ++ int namelen, i, rem; + +- if (sdl->sdl_nlen) { +- bcopy(sdl->sdl_data, obuf, sdl->sdl_nlen); +- out += sdl->sdl_nlen; +- if (sdl->sdl_alen) ++ namelen = (sdl->sdl_nlen <= IFNAMSIZ) ? sdl->sdl_nlen : IFNAMSIZ; ++ ++ out = obuf; ++ rem = sizeof(obuf); ++ if (namelen > 0) { ++ bcopy(sdl->sdl_data, out, namelen); ++ out += namelen; ++ rem -= namelen; ++ if (sdl->sdl_alen > 0) { + *out++ = ':'; ++ rem--; ++ } + } +- while (in < inlim) { +- if (firsttime) +- firsttime = 0; +- else ++ ++ in = (const char *)sdl->sdl_data + sdl->sdl_nlen; ++ inlim = in + sdl->sdl_alen; ++ ++ while (in < inlim && rem > 1) { ++ if (in != (const char *)sdl->sdl_data + sdl->sdl_nlen) { + *out++ = '.'; ++ rem--; ++ } + i = *in++; + if (i > 0xf) { +- out[1] = hexlist[i & 0xf]; ++ if (rem < 3) ++ break; ++ *out++ = hexlist[i & 0xf]; + i >>= 4; +- out[0] = hexlist[i]; +- out += 2; +- } else + *out++ = hexlist[i]; ++ rem -= 2; ++ } else { ++ if (rem < 2) ++ break; ++ *out++ = hexlist[i]; ++ rem++; ++ } + } + *out = 0; + return (obuf); From owner-svn-src-user@freebsd.org Tue Dec 6 19:38:27 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4D318C6A69B for ; Tue, 6 Dec 2016 19:38:27 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0306FE76; Tue, 6 Dec 2016 19:38:26 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id uB6JcQ5v038343; Tue, 6 Dec 2016 19:38:26 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id uB6JcQm9038342; Tue, 6 Dec 2016 19:38:26 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201612061938.uB6JcQm9038342@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Tue, 6 Dec 2016 19:38:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r309653 - in user/ngie: detangle-rc fix-progs ntb-hacking stable-10-libnv X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Dec 2016 19:38:27 -0000 Author: ngie Date: Tue Dec 6 19:38:25 2016 New Revision: 309653 URL: https://svnweb.freebsd.org/changeset/base/309653 Log: Prune branches that I have either completed work with, or don't plan to work on anymore Deleted: user/ngie/detangle-rc/ user/ngie/fix-progs/ user/ngie/ntb-hacking/ user/ngie/stable-10-libnv/ From owner-svn-src-user@freebsd.org Fri Dec 9 08:38:53 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4C82CC6D2E9 for ; Fri, 9 Dec 2016 08:38:53 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 273A3F32; Fri, 9 Dec 2016 08:38:53 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id uB98cqhA054216; Fri, 9 Dec 2016 08:38:52 GMT (envelope-from pho@FreeBSD.org) Received: (from pho@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id uB98cqst054215; Fri, 9 Dec 2016 08:38:52 GMT (envelope-from pho@FreeBSD.org) Message-Id: <201612090838.uB98cqst054215@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org using -f From: Peter Holm Date: Fri, 9 Dec 2016 08:38:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r309729 - user/pho/stress2/misc X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Dec 2016 08:38:53 -0000 Author: pho Date: Fri Dec 9 08:38:52 2016 New Revision: 309729 URL: https://svnweb.freebsd.org/changeset/base/309729 Log: Updated list of known problems. Added check for /dev/console access. Sponsored by: Dell EMC Isilon Modified: user/pho/stress2/misc/all.sh Modified: user/pho/stress2/misc/all.sh ============================================================================== --- user/pho/stress2/misc/all.sh Fri Dec 9 06:18:12 2016 (r309728) +++ user/pho/stress2/misc/all.sh Fri Dec 9 08:38:52 2016 (r309729) @@ -39,11 +39,8 @@ # panic: 43 vncache entries remaining 20111220 # backingstore3.sh # g_vfs_done():md6a[WRITE(offset=...)]error = 28 20111230 -# bio.sh WiP 20151116 # crossmp4.sh Known nullfs issue 20150523 -# crossmp6.sh Known lockd issue 20150625 -# dfull.sh umount stuck in "mount drain" 20111227 -# full.sh OOM 20160116 +# fsync.sh GEOM_JOURNAL: Cannot suspend file system /mnt 20160818 # fuse.sh Memory corruption seen in log file kostik734.txt 20141114 # fuse2.sh Deadlock seen 20121129 # fuse3.sh Deadlock seen 20141120 @@ -51,22 +48,22 @@ # gjournal.sh kmem_malloc(131072): kmem_map too small 20120626 # gjournal2.sh # gjournal3.sh panic: Journal overflow 20130729 -# holdcnt03.sh WiP 20151115 -# lockf5.sh Page fault 20150622 -# md2.sh panic: ufs_dirbad: /mnt: bad dir ino ...: mangled entry 20150227 -# maxmemdom.sh Panic: vm_page_alloc: missing page 20151029 +# gjournal4.sh panic: Journal overflow 20160829 +# kevent7.sh panic: softclock_call_cc: act 0xfffff800380dad40 0 20161115 +# lockf5.sh Spinning threads seen 20160718 +# maxvnodes2.sh WiP 20161129 +# mdconfig.sh Panic: g_read_data(): invalid length 262144 20161128 # memguard.sh Waiting for fix commit # memguard2.sh Waiting for fix commit # memguard3.sh Waiting for fix commit -# mkfifo.sh Page fault in softdep_count_dependencies+0x27 seen 20150524 -# mmap18.sh panic: vm_fault_copy_entry: main object missing page 20141015 -# mmap21.sh rangelock issue? 20150326 -# msdos4.sh OOM 20160115 +# mmap18.sh panic: vm_fault_copy_entry: main object missing page 20161102 +# msdos4.sh panic: Assertion sq->sq_wchan != NULL 20160610 # msdos5.sh Panic: Freeing unused sector ... 20141118 # newfs4.sh Deadlock seen 20150906 # nfs10.sh Double fault 20151013 -# oovm.sh WiP 20151206 -# oovm2.sh WiP 20151206 +# nfs16.sh panic: Failed to register NFS lock locally - error=11 20160608 +# oovm.sh Waiting for PQ_LAUNDRY 20151206 +# oovm2.sh Waiting for PQ_LAUNDRY 20151206 # pfl3.sh panic: handle_written_inodeblock: live inodedep 20140812 # pmc.sh NMI ... going to debugger 20111217 # posix_openpt2.sh @@ -77,7 +74,8 @@ # quota3.sh panic: softdep_deallocate_dependencies: unrecovered ... 20111222 # quota6.sh panic: softdep_deallocate_dependencies: unrecovered ... 20130206 # quota7.sh panic: dqflush: stray dquot 20120221 -# rw.sh WiP 20151116 +# rw.sh Out of VM 20151116 +# sendmsg.sh Test loops in the kernel 20160519 # shm_open.sh panic: kmem_malloc(4096): kmem_map too small 20130504 # snap3.sh mksnap_ffs stuck in snaprdb 20111226 # snap5.sh mksnap_ffs stuck in getblk 20111224 @@ -88,17 +86,16 @@ # suj9.sh page fault in softdep_count_dependencies+0x27 20141116 # suj11.sh panic: ufsdirhash_newblk: bad offset 20120118 # suj13.sh general protection fault in bufdaemon 20141130 -# suj18.sh panic: Bad tailq NEXT(0xc1e2a6088->tqh_last_s) != NULL 20120213 -# suj29.sh OOM 20160116 # suj30.sh panic: flush_pagedep_deps: MKDIR_PARENT 20121020 -# suj34.sh Various hangs and panics (SUJ + NULLFS iisue) 20131210 -# swap3.sh WiP 20151120 +# suj34.sh Various hangs and panics (SUJ + NULLFS issue) 20131210 # trim4.sh Page fault in softdep_count_dependencies+0x27 20140608 # umountf3.sh KDB: enter: watchdog timeout 20111217 # umountf7.sh panic: handle_written_inodeblock: live inodedep ... 20131129 +# umountf9.sh panic: handle_written_inodeblock: live inodedep ... 20160921 # unionfs.sh insmntque: non-locked vp: xx is not exclusive locked... 20130909 # unionfs2.sh insmntque: mp-safe fs and non-locked vp is not ... 20111219 # unionfs3.sh insmntque: mp-safe fs and non-locked vp is not ... 20111216 +# zfs3.sh Page fault 20161118 # Test not to run for other reasons: @@ -157,6 +154,7 @@ for i; do shift ;; -c) rm -f $alllast # Clear last know test + rm -f $alllist shift ;; -n) noshuffle=1 # Do not shuffle the list of tests @@ -180,7 +178,7 @@ minspace=$((1024 * 1024)) # in k [ `df -k $(dirname $diskimage) | tail -1 | awk '{print $4'}` -lt \ $minspace ] && echo "Warn: Not enough disk space on `dirname $diskimage` for \$diskimage" -[ ! -d $(dirname $RUNDIR) ] && echo "No such `dirname $RUNDIR`" && +[ ! -d $(dirname $RUNDIR) ] && echo "No such \$RUNDIR \"`dirname $RUNDIR`\"" && exit 1 [ `df -k $(dirname $RUNDIR) | tail -1 | awk '{print $4'}` -lt \ $minspace ] && @@ -202,13 +200,22 @@ rm -f $alllog $alllist find `dirname $alllast` -maxdepth 1 -name $alllast -mtime +12h -delete touch $alllast $alllog chmod 640 $alllast $alllog + +console=/dev/console +printf "\r\n" > $console & +pid=$! +sleep 1 +kill -0 $pid > /dev/null 2>&1 && +{ console=/dev/null; kill -9 $pid; } + while true; do exclude=`sed -n '/^# Start of list/,/^# End of list/p' < $0 | cat - all.exclude 2>/dev/null | grep "\.sh" | awk '{print $2}'` list=`echo *.sh` [ $# -ne 0 ] && list=$* - list=`echo $list | sed "s/all\.sh//; s/cleanup\.sh//"` + list=`echo $list | \ + sed "s/[[:<:]]all\.sh[[:>:]]//g; s/[[:<:]]cleanup\.sh[[:>:]]//g"` if [ -n "$noshuffle" -a $# -eq 0 ]; then last=`cat $alllast` @@ -222,8 +229,8 @@ while true; do fi fi [ -n "$noshuffle" ] || - list=`echo $list | tr '\n' ' ' | ../tools/shuffle | \ - tr ' ' '\n'` + list=`echo $list | tr ' ' '\n' | sort -R | \ + tr '\n' ' '` lst="" for i in $list; do @@ -238,14 +245,19 @@ while true; do for i in $lst; do n1=$((n1 + 1)) echo $i > $alllast - ./cleanup.sh + ./cleanup.sh || exit 1 echo "`date '+%Y%m%d %T'` all: $i" - echo "`date '+%Y%m%d %T'` all: $i" >> $alllog - printf "`date '+%Y%m%d %T'` all ($n1/$n2): $i\r\n" > /dev/console + printf "`date '+%Y%m%d %T'` all ($n1/$n2): $i\n" >> $alllog + printf "`date '+%Y%m%d %T'` all ($n1/$n2): $i\r\n" > $console logger "Starting test all: $i" sync;sync;sync start=`date '+%s'` - ./$i 2>&1 | tee $alloutput + ( + ./$i 2>&1 + e=$? + [ $e -ne 0 ] && + echo "FAIL $i exit code $e" + ) | tee $alloutput grep -qw FAIL $alloutput && echo "`date '+%Y%m%d %T'` $i" >> $allfaillog && logger "stress2 test $i failed" @@ -253,7 +265,7 @@ while true; do [ $((`date '+%s'` - $start)) -gt 1980 ] && printf "*** Excessive run time: %s %d min\r\n" $i, \ $(((`date '+%s'` - $start) / 60)) | \ - tee /dev/console >> $allexcess + tee $console >> $allexcess while pgrep -q swap; do echo "swap still running" sleep 2 From owner-svn-src-user@freebsd.org Fri Dec 9 08:41:58 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B1871C6D4F3 for ; Fri, 9 Dec 2016 08:41:58 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 81E5F12CD; Fri, 9 Dec 2016 08:41:58 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id uB98fvrm056091; Fri, 9 Dec 2016 08:41:57 GMT (envelope-from pho@FreeBSD.org) Received: (from pho@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id uB98fvpr056090; Fri, 9 Dec 2016 08:41:57 GMT (envelope-from pho@FreeBSD.org) Message-Id: <201612090841.uB98fvpr056090@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org using -f From: Peter Holm Date: Fri, 9 Dec 2016 08:41:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r309730 - user/pho/stress2/misc X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Dec 2016 08:41:58 -0000 Author: pho Date: Fri Dec 9 08:41:57 2016 New Revision: 309730 URL: https://svnweb.freebsd.org/changeset/base/309730 Log: Limit the number of open files to ulimit. Sponsored by: Dell EMC Isilon Modified: user/pho/stress2/misc/fdgrowtable.sh Modified: user/pho/stress2/misc/fdgrowtable.sh ============================================================================== --- user/pho/stress2/misc/fdgrowtable.sh Fri Dec 9 08:38:52 2016 (r309729) +++ user/pho/stress2/misc/fdgrowtable.sh Fri Dec 9 08:41:57 2016 (r309730) @@ -34,7 +34,7 @@ . ../default.cfg -max=`sysctl kern.maxfilesperproc | sed 's/.*: //'` +max=`ulimit -n` here=`pwd` cd /tmp