From owner-svn-src-vendor@FreeBSD.ORG Wed Dec 10 20:29:32 2014 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0074AB67; Wed, 10 Dec 2014 20:29:31 +0000 (UTC) Received: from aslan.scsiguy.com (mail.scsiguy.com [70.89.174.89]) (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 CA813E3B; Wed, 10 Dec 2014 20:29:31 +0000 (UTC) Received: from [192.168.6.155] (slboulder.spectralogic.com [192.30.190.3] (may be forged)) (authenticated bits=0) by aslan.scsiguy.com (8.14.9/8.14.9) with ESMTP id sBAKTTEO060895 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 10 Dec 2014 13:29:30 -0700 (MST) (envelope-from gibbs@scsiguy.com) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) Subject: Re: svn commit: r275551 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor-sys/illumos/dist/uts/common/fs/zfs/sys vendor/illumos/dist/cmd/zdb From: "Justin T. Gibbs" In-Reply-To: <201412060050.sB60oxYu045859@svn.freebsd.org> Date: Wed, 10 Dec 2014 13:29:24 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201412060050.sB60oxYu045859@svn.freebsd.org> To: Xin LI X-Mailer: Apple Mail (2.1993) Cc: svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-vendor@freebsd.org, will@FreeBSD.org X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Dec 2014 20:29:32 -0000 What=E2=80=99s the policy for the commit log on vendor imports from = illumos? Since illumos does not allow =E2=80=9CFreeBSD style=E2=80=9D = commit messages, I=E2=80=99ve been putting that data into the = corresponding illumos issue that I create. So this information isn=E2=80=99= t lost during the merge to FreeBSD, I think we should pull the issue = data into our commit messages in addition to data taken from the git = commit in illumos-gate. One minor gripe about the illumos issue tracker is that I=E2=80=99ve = found it hard to keep it from mangling the formatting of text. For = example, look at the commit log I put into the history section of = https://www.illumos.org/issues/5314. Instead of fighting with that, = I=E2=80=99ve been pushing my =E2=80=9CFreeBSD commit log=E2=80=9D as the = description of the review associated with the bug and just linking the = issue to the review. You can see that in the next big change from = Spectra that is currently going through the review process: https://www.illumos.org/issues/5056 https://reviews.csiden.org/r/131/ =E2=80=94 Justin > On Dec 5, 2014, at 5:50 PM, Xin LI wrote: >=20 > Author: delphij > Date: Sat Dec 6 00:50:57 2014 > New Revision: 275551 > URL: https://svnweb.freebsd.org/changeset/base/275551 >=20 > Log: > 5314 Remove "dbuf phys" db->db_data pointer aliases in ZFS > Reviewed by: Andriy Gapon > Reviewed by: Matthew Ahrens > Reviewed by: Will Andrews > Approved by: Dan McDonald > Author: Justin T. Gibbs >=20 > illumos/illumos-gate@c1379625401dfbe1c39b79136dd384a571d47fde >=20 > Modified: > vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_diff.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_send.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_traverse.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_tx.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_bookmark.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_deadlist.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_deleg.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_destroy.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dir.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_pool.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_prop.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_scan.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_synctask.c > vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_userhold.c > vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c > vendor-sys/illumos/dist/uts/common/fs/zfs/spa.c > vendor-sys/illumos/dist/uts/common/fs/zfs/spa_history.c > vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dbuf.h > vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dmu.h > vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_dataset.h > vendor-sys/illumos/dist/uts/common/fs/zfs/sys/dsl_dir.h > vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zap_impl.h > vendor-sys/illumos/dist/uts/common/fs/zfs/sys/zap_leaf.h > vendor-sys/illumos/dist/uts/common/fs/zfs/zap.c > vendor-sys/illumos/dist/uts/common/fs/zfs/zap_leaf.c > vendor-sys/illumos/dist/uts/common/fs/zfs/zap_micro.c > vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c >=20 > Changes in other areas also in this revision: > Modified: > vendor/illumos/dist/cmd/zdb/zdb.c >=20 > Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c Sat Dec 6 = 00:47:31 2014 (r275550) > +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c Sat Dec 6 = 00:50:57 2014 (r275551) > @@ -223,11 +223,8 @@ dbuf_evict_user(dmu_buf_impl_t *db) > if (db->db_level !=3D 0 || db->db_evict_func =3D=3D NULL) > return; >=20 > - if (db->db_user_data_ptr_ptr) > - *db->db_user_data_ptr_ptr =3D db->db.db_data; > db->db_evict_func(&db->db, db->db_user_ptr); > db->db_user_ptr =3D NULL; > - db->db_user_data_ptr_ptr =3D NULL; > db->db_evict_func =3D NULL; > } >=20 > @@ -418,16 +415,6 @@ dbuf_verify(dmu_buf_impl_t *db) > #endif >=20 > static void > -dbuf_update_data(dmu_buf_impl_t *db) > -{ > - ASSERT(MUTEX_HELD(&db->db_mtx)); > - if (db->db_level =3D=3D 0 && db->db_user_data_ptr_ptr) { > - ASSERT(!refcount_is_zero(&db->db_holds)); > - *db->db_user_data_ptr_ptr =3D db->db.db_data; > - } > -} > - > -static void > dbuf_set_data(dmu_buf_impl_t *db, arc_buf_t *buf) > { > ASSERT(MUTEX_HELD(&db->db_mtx)); > @@ -437,7 +424,6 @@ dbuf_set_data(dmu_buf_impl_t *db, arc_bu > db->db.db_data =3D buf->b_data; > if (!arc_released(buf)) > arc_set_callback(buf, dbuf_do_evict, db); > - dbuf_update_data(db); > } else { > dbuf_evict_user(db); > db->db.db_data =3D NULL; > @@ -543,7 +529,6 @@ dbuf_read_impl(dmu_buf_impl_t *db, zio_t > if (bonuslen) > bcopy(DN_BONUS(dn->dn_phys), db->db.db_data, = bonuslen); > DB_DNODE_EXIT(db); > - dbuf_update_data(db); > db->db_state =3D DB_CACHED; > mutex_exit(&db->db_mtx); > return; > @@ -1726,7 +1711,6 @@ dbuf_create(dnode_t *dn, uint8_t level,=20 > db->db_blkptr =3D blkptr; >=20 > db->db_user_ptr =3D NULL; > - db->db_user_data_ptr_ptr =3D NULL; > db->db_evict_func =3D NULL; > db->db_immediate_evict =3D 0; > db->db_freed_in_flight =3D 0; > @@ -1971,7 +1955,6 @@ top: > } >=20 > (void) refcount_add(&db->db_holds, tag); > - dbuf_update_data(db); > DBUF_VERIFY(db); > mutex_exit(&db->db_mtx); >=20 > @@ -2182,27 +2165,25 @@ dbuf_refcount(dmu_buf_impl_t *db) > } >=20 > void * > -dmu_buf_set_user(dmu_buf_t *db_fake, void *user_ptr, void = *user_data_ptr_ptr, > +dmu_buf_set_user(dmu_buf_t *db_fake, void *user_ptr, > dmu_buf_evict_func_t *evict_func) > { > - return (dmu_buf_update_user(db_fake, NULL, user_ptr, > - user_data_ptr_ptr, evict_func)); > + return (dmu_buf_update_user(db_fake, NULL, user_ptr, = evict_func)); > } >=20 > void * > -dmu_buf_set_user_ie(dmu_buf_t *db_fake, void *user_ptr, void = *user_data_ptr_ptr, > +dmu_buf_set_user_ie(dmu_buf_t *db_fake, void *user_ptr, > dmu_buf_evict_func_t *evict_func) > { > dmu_buf_impl_t *db =3D (dmu_buf_impl_t *)db_fake; >=20 > db->db_immediate_evict =3D TRUE; > - return (dmu_buf_update_user(db_fake, NULL, user_ptr, > - user_data_ptr_ptr, evict_func)); > + return (dmu_buf_update_user(db_fake, NULL, user_ptr, = evict_func)); > } >=20 > void * > dmu_buf_update_user(dmu_buf_t *db_fake, void *old_user_ptr, void = *user_ptr, > - void *user_data_ptr_ptr, dmu_buf_evict_func_t *evict_func) > + dmu_buf_evict_func_t *evict_func) > { > dmu_buf_impl_t *db =3D (dmu_buf_impl_t *)db_fake; > ASSERT(db->db_level =3D=3D 0); > @@ -2213,10 +2194,7 @@ dmu_buf_update_user(dmu_buf_t *db_fake,=20 >=20 > if (db->db_user_ptr =3D=3D old_user_ptr) { > db->db_user_ptr =3D user_ptr; > - db->db_user_data_ptr_ptr =3D user_data_ptr_ptr; > db->db_evict_func =3D evict_func; > - > - dbuf_update_data(db); > } else { > old_user_ptr =3D db->db_user_ptr; > } >=20 > Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_diff.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_diff.c Sat Dec = 6 00:47:31 2014 (r275550) > +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_diff.c Sat Dec = 6 00:50:57 2014 (r275551) > @@ -194,7 +194,7 @@ dmu_diff(const char *tosnap_name, const=20 > return (SET_ERROR(EXDEV)); > } >=20 > - fromtxg =3D fromsnap->ds_phys->ds_creation_txg; > + fromtxg =3D dsl_dataset_phys(fromsnap)->ds_creation_txg; > dsl_dataset_rele(fromsnap, FTAG); >=20 > dsl_dataset_long_hold(tosnap, FTAG); >=20 > Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c Sat Dec = 6 00:47:31 2014 (r275550) > +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_objset.c Sat Dec = 6 00:50:57 2014 (r275551) > @@ -1479,12 +1479,12 @@ dmu_snapshot_realname(objset_t *os, char > dsl_dataset_t *ds =3D os->os_dsl_dataset; > uint64_t ignored; >=20 > - if (ds->ds_phys->ds_snapnames_zapobj =3D=3D 0) > + if (dsl_dataset_phys(ds)->ds_snapnames_zapobj =3D=3D 0) > return (SET_ERROR(ENOENT)); >=20 > return (zap_lookup_norm(ds->ds_dir->dd_pool->dp_meta_objset, > - ds->ds_phys->ds_snapnames_zapobj, name, 8, 1, &ignored, = MT_FIRST, > - real, maxlen, conflict)); > + dsl_dataset_phys(ds)->ds_snapnames_zapobj, name, 8, 1, = &ignored, > + MT_FIRST, real, maxlen, conflict)); > } >=20 > int > @@ -1497,12 +1497,12 @@ dmu_snapshot_list_next(objset_t *os, int >=20 > ASSERT(dsl_pool_config_held(dmu_objset_pool(os))); >=20 > - if (ds->ds_phys->ds_snapnames_zapobj =3D=3D 0) > + if (dsl_dataset_phys(ds)->ds_snapnames_zapobj =3D=3D 0) > return (SET_ERROR(ENOENT)); >=20 > zap_cursor_init_serialized(&cursor, > ds->ds_dir->dd_pool->dp_meta_objset, > - ds->ds_phys->ds_snapnames_zapobj, *offp); > + dsl_dataset_phys(ds)->ds_snapnames_zapobj, *offp); >=20 > if (zap_cursor_retrieve(&cursor, &attr) !=3D 0) { > zap_cursor_fini(&cursor); > @@ -1536,12 +1536,12 @@ dmu_dir_list_next(objset_t *os, int name >=20 > /* there is no next dir on a snapshot! */ > if (os->os_dsl_dataset->ds_object !=3D > - dd->dd_phys->dd_head_dataset_obj) > + dsl_dir_phys(dd)->dd_head_dataset_obj) > return (SET_ERROR(ENOENT)); >=20 > zap_cursor_init_serialized(&cursor, > dd->dd_pool->dp_meta_objset, > - dd->dd_phys->dd_child_dir_zapobj, *offp); > + dsl_dir_phys(dd)->dd_child_dir_zapobj, *offp); >=20 > if (zap_cursor_retrieve(&cursor, &attr) !=3D 0) { > zap_cursor_fini(&cursor); > @@ -1589,7 +1589,7 @@ dmu_objset_find_dp(dsl_pool_t *dp, uint6 > return (0); > } >=20 > - thisobj =3D dd->dd_phys->dd_head_dataset_obj; > + thisobj =3D dsl_dir_phys(dd)->dd_head_dataset_obj; > attr =3D kmem_alloc(sizeof (zap_attribute_t), KM_SLEEP); >=20 > /* > @@ -1597,7 +1597,7 @@ dmu_objset_find_dp(dsl_pool_t *dp, uint6 > */ > if (flags & DS_FIND_CHILDREN) { > for (zap_cursor_init(&zc, dp->dp_meta_objset, > - dd->dd_phys->dd_child_dir_zapobj); > + dsl_dir_phys(dd)->dd_child_dir_zapobj); > zap_cursor_retrieve(&zc, attr) =3D=3D 0; > (void) zap_cursor_advance(&zc)) { > ASSERT3U(attr->za_integer_length, =3D=3D, > @@ -1626,7 +1626,9 @@ dmu_objset_find_dp(dsl_pool_t *dp, uint6 > err =3D dsl_dataset_hold_obj(dp, thisobj, FTAG, &ds); >=20 > if (err =3D=3D 0) { > - uint64_t snapobj =3D = ds->ds_phys->ds_snapnames_zapobj; > + uint64_t snapobj; > + > + snapobj =3D = dsl_dataset_phys(ds)->ds_snapnames_zapobj; > dsl_dataset_rele(ds, FTAG); >=20 > for (zap_cursor_init(&zc, dp->dp_meta_objset, = snapobj); > @@ -1701,7 +1703,7 @@ dmu_objset_find_impl(spa_t *spa, const c > return (0); > } >=20 > - thisobj =3D dd->dd_phys->dd_head_dataset_obj; > + thisobj =3D dsl_dir_phys(dd)->dd_head_dataset_obj; > attr =3D kmem_alloc(sizeof (zap_attribute_t), KM_SLEEP); >=20 > /* > @@ -1709,7 +1711,7 @@ dmu_objset_find_impl(spa_t *spa, const c > */ > if (flags & DS_FIND_CHILDREN) { > for (zap_cursor_init(&zc, dp->dp_meta_objset, > - dd->dd_phys->dd_child_dir_zapobj); > + dsl_dir_phys(dd)->dd_child_dir_zapobj); > zap_cursor_retrieve(&zc, attr) =3D=3D 0; > (void) zap_cursor_advance(&zc)) { > ASSERT3U(attr->za_integer_length, =3D=3D, > @@ -1742,7 +1744,9 @@ dmu_objset_find_impl(spa_t *spa, const c > err =3D dsl_dataset_hold_obj(dp, thisobj, FTAG, &ds); >=20 > if (err =3D=3D 0) { > - uint64_t snapobj =3D = ds->ds_phys->ds_snapnames_zapobj; > + uint64_t snapobj; > + > + snapobj =3D = dsl_dataset_phys(ds)->ds_snapnames_zapobj; > dsl_dataset_rele(ds, FTAG); >=20 > for (zap_cursor_init(&zc, dp->dp_meta_objset, = snapobj); >=20 > Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_send.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_send.c Sat Dec = 6 00:47:31 2014 (r275550) > +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_send.c Sat Dec = 6 00:50:57 2014 (r275551) > @@ -598,12 +598,12 @@ dmu_send_impl(void *tag, dsl_pool_t *dp, > featureflags); >=20 > drr->drr_u.drr_begin.drr_creation_time =3D > - ds->ds_phys->ds_creation_time; > + dsl_dataset_phys(ds)->ds_creation_time; > drr->drr_u.drr_begin.drr_type =3D dmu_objset_type(os); > if (is_clone) > drr->drr_u.drr_begin.drr_flags |=3D DRR_FLAG_CLONE; > - drr->drr_u.drr_begin.drr_toguid =3D ds->ds_phys->ds_guid; > - if (ds->ds_phys->ds_flags & DS_FLAG_CI_DATASET) > + drr->drr_u.drr_begin.drr_toguid =3D = dsl_dataset_phys(ds)->ds_guid; > + if (dsl_dataset_phys(ds)->ds_flags & DS_FLAG_CI_DATASET) > drr->drr_u.drr_begin.drr_flags |=3D DRR_FLAG_CI_DATA; >=20 > if (fromzb !=3D NULL) { > @@ -624,7 +624,7 @@ dmu_send_impl(void *tag, dsl_pool_t *dp, > dsp->dsa_proc =3D curproc; > dsp->dsa_os =3D os; > dsp->dsa_off =3D off; > - dsp->dsa_toguid =3D ds->ds_phys->ds_guid; > + dsp->dsa_toguid =3D dsl_dataset_phys(ds)->ds_guid; > ZIO_SET_CHECKSUM(&dsp->dsa_zc, 0, 0, 0, 0); > dsp->dsa_pending_op =3D PENDING_NONE; > dsp->dsa_incremental =3D (fromzb !=3D NULL); > @@ -710,9 +710,10 @@ dmu_send_obj(const char *pool, uint64_t=20 > } > if (!dsl_dataset_is_before(ds, fromds, 0)) > err =3D SET_ERROR(EXDEV); > - zb.zbm_creation_time =3D = fromds->ds_phys->ds_creation_time; > - zb.zbm_creation_txg =3D = fromds->ds_phys->ds_creation_txg; > - zb.zbm_guid =3D fromds->ds_phys->ds_guid; > + zb.zbm_creation_time =3D > + dsl_dataset_phys(fromds)->ds_creation_time; > + zb.zbm_creation_txg =3D = dsl_dataset_phys(fromds)->ds_creation_txg; > + zb.zbm_guid =3D dsl_dataset_phys(fromds)->ds_guid; > is_clone =3D (fromds->ds_dir !=3D ds->ds_dir); > dsl_dataset_rele(fromds, FTAG); > err =3D dmu_send_impl(FTAG, dp, ds, &zb, is_clone, > @@ -779,10 +780,10 @@ dmu_send(const char *tosnap, const char=20 > if (!dsl_dataset_is_before(ds, fromds, = 0)) > err =3D SET_ERROR(EXDEV); > zb.zbm_creation_time =3D > - fromds->ds_phys->ds_creation_time; > + = dsl_dataset_phys(fromds)->ds_creation_time; > zb.zbm_creation_txg =3D > - fromds->ds_phys->ds_creation_txg; > - zb.zbm_guid =3D = fromds->ds_phys->ds_guid; > + = dsl_dataset_phys(fromds)->ds_creation_txg; > + zb.zbm_guid =3D = dsl_dataset_phys(fromds)->ds_guid; > is_clone =3D (ds->ds_dir !=3D = fromds->ds_dir); > dsl_dataset_rele(fromds, FTAG); > } > @@ -829,7 +830,7 @@ dmu_send_estimate(dsl_dataset_t *ds, dsl >=20 > /* Get uncompressed size estimate of changed data. */ > if (fromds =3D=3D NULL) { > - size =3D ds->ds_phys->ds_uncompressed_bytes; > + size =3D dsl_dataset_phys(ds)->ds_uncompressed_bytes; > } else { > uint64_t used, comp; > err =3D dsl_dataset_space_written(fromds, ds, > @@ -884,15 +885,15 @@ recv_begin_check_existing_impl(dmu_recv_ >=20 > /* temporary clone name must not exist */ > error =3D zap_lookup(dp->dp_meta_objset, > - ds->ds_dir->dd_phys->dd_child_dir_zapobj, recv_clone_name, > + dsl_dir_phys(ds->ds_dir)->dd_child_dir_zapobj, = recv_clone_name, > 8, 1, &val); > if (error !=3D ENOENT) > return (error =3D=3D 0 ? EBUSY : error); >=20 > /* new snapshot name must not exist */ > error =3D zap_lookup(dp->dp_meta_objset, > - ds->ds_phys->ds_snapnames_zapobj, = drba->drba_cookie->drc_tosnap, > - 8, 1, &val); > + dsl_dataset_phys(ds)->ds_snapnames_zapobj, > + drba->drba_cookie->drc_tosnap, 8, 1, &val); > if (error !=3D ENOENT) > return (error =3D=3D 0 ? EEXIST : error); >=20 > @@ -912,7 +913,7 @@ recv_begin_check_existing_impl(dmu_recv_ >=20 > if (fromguid !=3D 0) { > dsl_dataset_t *snap; > - uint64_t obj =3D ds->ds_phys->ds_prev_snap_obj; > + uint64_t obj =3D dsl_dataset_phys(ds)->ds_prev_snap_obj; >=20 > /* Find snapshot in this dir that matches fromguid. */ > while (obj !=3D 0) { > @@ -924,9 +925,9 @@ recv_begin_check_existing_impl(dmu_recv_ > dsl_dataset_rele(snap, FTAG); > return (SET_ERROR(ENODEV)); > } > - if (snap->ds_phys->ds_guid =3D=3D fromguid) > + if (dsl_dataset_phys(snap)->ds_guid =3D=3D = fromguid) > break; > - obj =3D snap->ds_phys->ds_prev_snap_obj; > + obj =3D = dsl_dataset_phys(snap)->ds_prev_snap_obj; > dsl_dataset_rele(snap, FTAG); > } > if (obj =3D=3D 0) > @@ -949,9 +950,9 @@ recv_begin_check_existing_impl(dmu_recv_ > dsl_dataset_rele(snap, FTAG); > } else { > /* if full, most recent snapshot must be $ORIGIN */ > - if (ds->ds_phys->ds_prev_snap_txg >=3D TXG_INITIAL) > + if (dsl_dataset_phys(ds)->ds_prev_snap_txg >=3D = TXG_INITIAL) > return (SET_ERROR(ENODEV)); > - drba->drba_snapobj =3D ds->ds_phys->ds_prev_snap_obj; > + drba->drba_snapobj =3D = dsl_dataset_phys(ds)->ds_prev_snap_obj; > } >=20 > return (0); > @@ -1069,7 +1070,7 @@ dmu_recv_begin_check(void *arg, dmu_tx_t > dsl_dataset_rele(ds, FTAG); > return (SET_ERROR(EINVAL)); > } > - if (origin->ds_phys->ds_guid !=3D fromguid) { > + if (dsl_dataset_phys(origin)->ds_guid !=3D = fromguid) { > dsl_dataset_rele(origin, FTAG); > dsl_dataset_rele(ds, FTAG); > return (SET_ERROR(ENODEV)); > @@ -1140,7 +1141,7 @@ dmu_recv_begin_sync(void *arg, dmu_tx_t=20 > } >=20 > dmu_buf_will_dirty(newds->ds_dbuf, tx); > - newds->ds_phys->ds_flags |=3D DS_FLAG_INCONSISTENT; > + dsl_dataset_phys(newds)->ds_flags |=3D DS_FLAG_INCONSISTENT; >=20 > /* > * If we actually created a non-clone, we need to create the > @@ -1777,7 +1778,7 @@ dmu_recv_stream(dmu_recv_cookie_t *drc,=20 > */ > VERIFY0(dmu_objset_from_ds(drc->drc_ds, &os)); >=20 > - ASSERT(drc->drc_ds->ds_phys->ds_flags & DS_FLAG_INCONSISTENT); > + ASSERT(dsl_dataset_phys(drc->drc_ds)->ds_flags & = DS_FLAG_INCONSISTENT); >=20 > featureflags =3D = DMU_GET_FEATUREFLAGS(drc->drc_drrb->drr_versioninfo); >=20 > @@ -1940,8 +1941,11 @@ dmu_recv_end_check(void *arg, dmu_tx_t * > * the snap before drc_ds, because drc_ds can = not > * have any snaps of its own). > */ > - uint64_t obj =3D = origin_head->ds_phys->ds_prev_snap_obj; > - while (obj !=3D = drc->drc_ds->ds_phys->ds_prev_snap_obj) { > + uint64_t obj; > + > + obj =3D = dsl_dataset_phys(origin_head)->ds_prev_snap_obj; > + while (obj !=3D > + = dsl_dataset_phys(drc->drc_ds)->ds_prev_snap_obj) { > dsl_dataset_t *snap; > error =3D dsl_dataset_hold_obj(dp, obj, = FTAG, > &snap); > @@ -1953,7 +1957,7 @@ dmu_recv_end_check(void *arg, dmu_tx_t * > error =3D = dsl_destroy_snapshot_check_impl( > snap, B_FALSE); > } > - obj =3D snap->ds_phys->ds_prev_snap_obj; > + obj =3D = dsl_dataset_phys(snap)->ds_prev_snap_obj; > dsl_dataset_rele(snap, FTAG); > if (error !=3D 0) > return (error); > @@ -1999,13 +2003,16 @@ dmu_recv_end_sync(void *arg, dmu_tx_t *t > * Destroy any snapshots of drc_tofs = (origin_head) > * after the origin (the snap before drc_ds). > */ > - uint64_t obj =3D = origin_head->ds_phys->ds_prev_snap_obj; > - while (obj !=3D = drc->drc_ds->ds_phys->ds_prev_snap_obj) { > + uint64_t obj; > + > + obj =3D = dsl_dataset_phys(origin_head)->ds_prev_snap_obj; > + while (obj !=3D > + = dsl_dataset_phys(drc->drc_ds)->ds_prev_snap_obj) { > dsl_dataset_t *snap; > VERIFY0(dsl_dataset_hold_obj(dp, obj, = FTAG, > &snap)); > ASSERT3P(snap->ds_dir, =3D=3D, = origin_head->ds_dir); > - obj =3D snap->ds_phys->ds_prev_snap_obj; > + obj =3D = dsl_dataset_phys(snap)->ds_prev_snap_obj; > dsl_destroy_snapshot_sync_impl(snap, > B_FALSE, tx); > dsl_dataset_rele(snap, FTAG); > @@ -2021,15 +2028,16 @@ dmu_recv_end_sync(void *arg, dmu_tx_t *t >=20 > /* set snapshot's creation time and guid */ > dmu_buf_will_dirty(origin_head->ds_prev->ds_dbuf, tx); > - origin_head->ds_prev->ds_phys->ds_creation_time =3D > + dsl_dataset_phys(origin_head->ds_prev)->ds_creation_time = =3D > drc->drc_drrb->drr_creation_time; > - origin_head->ds_prev->ds_phys->ds_guid =3D > + dsl_dataset_phys(origin_head->ds_prev)->ds_guid =3D > drc->drc_drrb->drr_toguid; > - origin_head->ds_prev->ds_phys->ds_flags &=3D > + dsl_dataset_phys(origin_head->ds_prev)->ds_flags &=3D > ~DS_FLAG_INCONSISTENT; >=20 > dmu_buf_will_dirty(origin_head->ds_dbuf, tx); > - origin_head->ds_phys->ds_flags &=3D = ~DS_FLAG_INCONSISTENT; > + dsl_dataset_phys(origin_head)->ds_flags &=3D > + ~DS_FLAG_INCONSISTENT; >=20 > dsl_dataset_rele(origin_head, FTAG); > dsl_destroy_head_sync_impl(drc->drc_ds, tx); > @@ -2043,15 +2051,17 @@ dmu_recv_end_sync(void *arg, dmu_tx_t *t >=20 > /* set snapshot's creation time and guid */ > dmu_buf_will_dirty(ds->ds_prev->ds_dbuf, tx); > - ds->ds_prev->ds_phys->ds_creation_time =3D > + dsl_dataset_phys(ds->ds_prev)->ds_creation_time =3D > drc->drc_drrb->drr_creation_time; > - ds->ds_prev->ds_phys->ds_guid =3D = drc->drc_drrb->drr_toguid; > - ds->ds_prev->ds_phys->ds_flags &=3D = ~DS_FLAG_INCONSISTENT; > + dsl_dataset_phys(ds->ds_prev)->ds_guid =3D > + drc->drc_drrb->drr_toguid; > + dsl_dataset_phys(ds->ds_prev)->ds_flags &=3D > + ~DS_FLAG_INCONSISTENT; >=20 > dmu_buf_will_dirty(ds->ds_dbuf, tx); > - ds->ds_phys->ds_flags &=3D ~DS_FLAG_INCONSISTENT; > + dsl_dataset_phys(ds)->ds_flags &=3D = ~DS_FLAG_INCONSISTENT; > } > - drc->drc_newsnapobj =3D drc->drc_ds->ds_phys->ds_prev_snap_obj; > + drc->drc_newsnapobj =3D = dsl_dataset_phys(drc->drc_ds)->ds_prev_snap_obj; > /* > * Release the hold from dmu_recv_begin. This must be done = before > * we return to open context, so that when we free the dataset's = dnode, > @@ -2077,7 +2087,7 @@ add_ds_to_guidmap(const char *name, avl_ > gmep =3D kmem_alloc(sizeof (*gmep), KM_SLEEP); > err =3D dsl_dataset_hold_obj(dp, snapobj, gmep, &snapds); > if (err =3D=3D 0) { > - gmep->guid =3D snapds->ds_phys->ds_guid; > + gmep->guid =3D dsl_dataset_phys(snapds)->ds_guid; > gmep->gme_ds =3D snapds; > avl_add(guid_map, gmep); > dsl_dataset_long_hold(snapds, gmep); >=20 > Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_traverse.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_traverse.c Sat Dec = 6 00:47:31 2014 (r275550) > +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_traverse.c Sat Dec = 6 00:50:57 2014 (r275551) > @@ -579,7 +579,7 @@ traverse_dataset(dsl_dataset_t *ds, uint > blkptr_cb_t func, void *arg) > { > return (traverse_impl(ds->ds_dir->dd_pool->dp_spa, ds, = ds->ds_object, > - &ds->ds_phys->ds_bp, txg_start, NULL, flags, func, arg)); > + &dsl_dataset_phys(ds)->ds_bp, txg_start, NULL, flags, func, = arg)); > } >=20 > int > @@ -634,8 +634,8 @@ traverse_pool(spa_t *spa, uint64_t txg_s > continue; > break; > } > - if (ds->ds_phys->ds_prev_snap_txg > txg) > - txg =3D ds->ds_phys->ds_prev_snap_txg; > + if (dsl_dataset_phys(ds)->ds_prev_snap_txg > = txg) > + txg =3D = dsl_dataset_phys(ds)->ds_prev_snap_txg; > err =3D traverse_dataset(ds, txg, flags, func, = arg); > dsl_dataset_rele(ds, FTAG); > if (err !=3D 0) >=20 > Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_tx.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_tx.c Sat Dec = 6 00:47:31 2014 (r275550) > +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dmu_tx.c Sat Dec = 6 00:50:57 2014 (r275551) > @@ -713,6 +713,7 @@ dmu_tx_hold_zap(dmu_tx_t *tx, uint64_t o > { > dmu_tx_hold_t *txh; > dnode_t *dn; > + dsl_dataset_phys_t *ds_phys; > uint64_t nblocks; > int epbs, err; >=20 > @@ -787,8 +788,9 @@ dmu_tx_hold_zap(dmu_tx_t *tx, uint64_t o > * we'll have to modify an indirect twig for each. > */ > epbs =3D dn->dn_indblkshift - SPA_BLKPTRSHIFT; > + ds_phys =3D dsl_dataset_phys(dn->dn_objset->os_dsl_dataset); > for (nblocks =3D dn->dn_maxblkid >> epbs; nblocks !=3D 0; = nblocks >>=3D epbs) > - if = (dn->dn_objset->os_dsl_dataset->ds_phys->ds_prev_snap_obj) > + if (ds_phys->ds_prev_snap_obj) > txh->txh_space_towrite +=3D 3 << = dn->dn_indblkshift; > else > txh->txh_space_tooverwrite +=3D 3 << = dn->dn_indblkshift; >=20 > Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c Sat Dec 6 = 00:47:31 2014 (r275550) > +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dnode.c Sat Dec 6 = 00:50:57 2014 (r275551) > @@ -1116,7 +1116,7 @@ dnode_hold_impl(objset_t *os, uint64_t o > zrl_init(&dnh[i].dnh_zrlock); > dnh[i].dnh_dnode =3D NULL; > } > - if (winner =3D dmu_buf_set_user(&db->db, = children_dnodes, NULL, > + if (winner =3D dmu_buf_set_user(&db->db, = children_dnodes, > dnode_buf_pageout)) { >=20 > for (i =3D 0; i < epb; i++) { >=20 > Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_bookmark.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_bookmark.c Sat Dec = 6 00:47:31 2014 (r275550) > +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_bookmark.c Sat Dec = 6 00:50:57 2014 (r275551) > @@ -65,7 +65,7 @@ dsl_dataset_bmark_lookup(dsl_dataset_t * > if (bmark_zapobj =3D=3D 0) > return (SET_ERROR(ESRCH)); >=20 > - if (ds->ds_phys->ds_flags & DS_FLAG_CI_DATASET) > + if (dsl_dataset_phys(ds)->ds_flags & DS_FLAG_CI_DATASET) > mt =3D MT_FIRST; > else > mt =3D MT_EXACT; > @@ -208,10 +208,11 @@ dsl_bookmark_create_sync(void *arg, dmu_ > &bmark_fs->ds_bookmarks, tx)); > } >=20 > - bmark_phys.zbm_guid =3D snapds->ds_phys->ds_guid; > - bmark_phys.zbm_creation_txg =3D = snapds->ds_phys->ds_creation_txg; > + bmark_phys.zbm_guid =3D = dsl_dataset_phys(snapds)->ds_guid; > + bmark_phys.zbm_creation_txg =3D > + dsl_dataset_phys(snapds)->ds_creation_txg; > bmark_phys.zbm_creation_time =3D > - snapds->ds_phys->ds_creation_time; > + dsl_dataset_phys(snapds)->ds_creation_time; >=20 > VERIFY0(zap_add(mos, bmark_fs->ds_bookmarks, > shortname, sizeof (uint64_t), > @@ -340,7 +341,7 @@ dsl_dataset_bookmark_remove(dsl_dataset_ > uint64_t bmark_zapobj =3D ds->ds_bookmarks; > matchtype_t mt; >=20 > - if (ds->ds_phys->ds_flags & DS_FLAG_CI_DATASET) > + if (dsl_dataset_phys(ds)->ds_flags & DS_FLAG_CI_DATASET) > mt =3D MT_FIRST; > else > mt =3D MT_EXACT; >=20 > Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c Sat Dec = 6 00:47:31 2014 (r275550) > +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_dataset.c Sat Dec = 6 00:50:57 2014 (r275551) > @@ -70,6 +70,9 @@ int zfs_max_recordsize =3D 1 * 1024 * 1024 >=20 > #define DS_REF_MAX (1ULL << 62) >=20 > +extern inline dsl_dataset_phys_t *dsl_dataset_phys(dsl_dataset_t = *ds); > +extern inline boolean_t dsl_dataset_is_snapshot(dsl_dataset_t *ds); > + > /* > * Figure out how much of this delta should be propogated to the = dsl_dir > * layer. If there's a refreservation, that space has already been > @@ -78,13 +81,15 @@ int zfs_max_recordsize =3D 1 * 1024 * 1024 > static int64_t > parent_delta(dsl_dataset_t *ds, int64_t delta) > { > + dsl_dataset_phys_t *ds_phys; > uint64_t old_bytes, new_bytes; >=20 > if (ds->ds_reserved =3D=3D 0) > return (delta); >=20 > - old_bytes =3D MAX(ds->ds_phys->ds_unique_bytes, = ds->ds_reserved); > - new_bytes =3D MAX(ds->ds_phys->ds_unique_bytes + delta, = ds->ds_reserved); > + ds_phys =3D dsl_dataset_phys(ds); > + old_bytes =3D MAX(ds_phys->ds_unique_bytes, ds->ds_reserved); > + new_bytes =3D MAX(ds_phys->ds_unique_bytes + delta, = ds->ds_reserved); >=20 > ASSERT3U(ABS((int64_t)(new_bytes - old_bytes)), <=3D, = ABS(delta)); > return (new_bytes - old_bytes); > @@ -115,10 +120,10 @@ dsl_dataset_block_born(dsl_dataset_t *ds > dmu_buf_will_dirty(ds->ds_dbuf, tx); > mutex_enter(&ds->ds_lock); > delta =3D parent_delta(ds, used); > - ds->ds_phys->ds_referenced_bytes +=3D used; > - ds->ds_phys->ds_compressed_bytes +=3D compressed; > - ds->ds_phys->ds_uncompressed_bytes +=3D uncompressed; > - ds->ds_phys->ds_unique_bytes +=3D used; > + dsl_dataset_phys(ds)->ds_referenced_bytes +=3D used; > + dsl_dataset_phys(ds)->ds_compressed_bytes +=3D compressed; > + dsl_dataset_phys(ds)->ds_uncompressed_bytes +=3D uncompressed; > + dsl_dataset_phys(ds)->ds_unique_bytes +=3D used; > if (BP_GET_LSIZE(bp) > SPA_OLD_MAXBLOCKSIZE) > ds->ds_need_large_blocks =3D B_TRUE; > mutex_exit(&ds->ds_lock); > @@ -153,17 +158,17 @@ dsl_dataset_block_kill(dsl_dataset_t *ds > ASSERT(!dsl_dataset_is_snapshot(ds)); > dmu_buf_will_dirty(ds->ds_dbuf, tx); >=20 > - if (bp->blk_birth > ds->ds_phys->ds_prev_snap_txg) { > + if (bp->blk_birth > dsl_dataset_phys(ds)->ds_prev_snap_txg) { > int64_t delta; >=20 > dprintf_bp(bp, "freeing ds=3D%llu", ds->ds_object); > dsl_free(tx->tx_pool, tx->tx_txg, bp); >=20 > mutex_enter(&ds->ds_lock); > - ASSERT(ds->ds_phys->ds_unique_bytes >=3D used || > + ASSERT(dsl_dataset_phys(ds)->ds_unique_bytes >=3D used = || > !DS_UNIQUE_IS_ACCURATE(ds)); > delta =3D parent_delta(ds, -used); > - ds->ds_phys->ds_unique_bytes -=3D used; > + dsl_dataset_phys(ds)->ds_unique_bytes -=3D used; > mutex_exit(&ds->ds_lock); > dsl_dir_diduse_space(ds->ds_dir, DD_USED_HEAD, > delta, -compressed, -uncompressed, tx); > @@ -184,15 +189,15 @@ dsl_dataset_block_kill(dsl_dataset_t *ds > dsl_deadlist_insert(&ds->ds_deadlist, bp, tx); > } > ASSERT3U(ds->ds_prev->ds_object, =3D=3D, > - ds->ds_phys->ds_prev_snap_obj); > - ASSERT(ds->ds_prev->ds_phys->ds_num_children > 0); > + dsl_dataset_phys(ds)->ds_prev_snap_obj); > + ASSERT(dsl_dataset_phys(ds->ds_prev)->ds_num_children > = 0); > /* if (bp->blk_birth > prev prev snap txg) prev unique = +=3D bs */ > - if (ds->ds_prev->ds_phys->ds_next_snap_obj =3D=3D > + if (dsl_dataset_phys(ds->ds_prev)->ds_next_snap_obj =3D=3D= > ds->ds_object && bp->blk_birth > > - ds->ds_prev->ds_phys->ds_prev_snap_txg) { > + dsl_dataset_phys(ds->ds_prev)->ds_prev_snap_txg) { > dmu_buf_will_dirty(ds->ds_prev->ds_dbuf, tx); > mutex_enter(&ds->ds_prev->ds_lock); > - ds->ds_prev->ds_phys->ds_unique_bytes +=3D used; > + dsl_dataset_phys(ds->ds_prev)->ds_unique_bytes = +=3D used; > mutex_exit(&ds->ds_prev->ds_lock); > } > if (bp->blk_birth > ds->ds_dir->dd_origin_txg) { > @@ -201,12 +206,12 @@ dsl_dataset_block_kill(dsl_dataset_t *ds > } > } > mutex_enter(&ds->ds_lock); > - ASSERT3U(ds->ds_phys->ds_referenced_bytes, >=3D, used); > - ds->ds_phys->ds_referenced_bytes -=3D used; > - ASSERT3U(ds->ds_phys->ds_compressed_bytes, >=3D, compressed); > - ds->ds_phys->ds_compressed_bytes -=3D compressed; > - ASSERT3U(ds->ds_phys->ds_uncompressed_bytes, >=3D, = uncompressed); > - ds->ds_phys->ds_uncompressed_bytes -=3D uncompressed; > + ASSERT3U(dsl_dataset_phys(ds)->ds_referenced_bytes, >=3D, used); > + dsl_dataset_phys(ds)->ds_referenced_bytes -=3D used; > + ASSERT3U(dsl_dataset_phys(ds)->ds_compressed_bytes, >=3D, = compressed); > + dsl_dataset_phys(ds)->ds_compressed_bytes -=3D compressed; > + ASSERT3U(dsl_dataset_phys(ds)->ds_uncompressed_bytes, >=3D, = uncompressed); > + dsl_dataset_phys(ds)->ds_uncompressed_bytes -=3D uncompressed; > mutex_exit(&ds->ds_lock); >=20 > return (used); > @@ -232,7 +237,7 @@ dsl_dataset_prev_snap_txg(dsl_dataset_t=20 > if (ds->ds_trysnap_txg > > spa_last_synced_txg(ds->ds_dir->dd_pool->dp_spa)) > trysnap =3D ds->ds_trysnap_txg; > - return (MAX(ds->ds_phys->ds_prev_snap_txg, trysnap)); > + return (MAX(dsl_dataset_phys(ds)->ds_prev_snap_txg, trysnap)); > } >=20 > boolean_t > @@ -267,7 +272,7 @@ dsl_dataset_evict(dmu_buf_t *db, void *d > } >=20 > bplist_destroy(&ds->ds_pending_deadlist); > - if (ds->ds_phys->ds_deadlist_obj !=3D 0) > + if (dsl_dataset_phys(ds)->ds_deadlist_obj !=3D 0) > dsl_deadlist_close(&ds->ds_deadlist); > if (ds->ds_dir) > dsl_dir_rele(ds->ds_dir, ds); > @@ -293,10 +298,10 @@ dsl_dataset_get_snapname(dsl_dataset_t * >=20 > if (ds->ds_snapname[0]) > return (0); > - if (ds->ds_phys->ds_next_snap_obj =3D=3D 0) > + if (dsl_dataset_phys(ds)->ds_next_snap_obj =3D=3D 0) > return (0); >=20 > - err =3D dmu_bonus_hold(mos, = ds->ds_dir->dd_phys->dd_head_dataset_obj, > + err =3D dmu_bonus_hold(mos, = dsl_dir_phys(ds->ds_dir)->dd_head_dataset_obj, > FTAG, &headdbuf); > if (err !=3D 0) > return (err); > @@ -311,11 +316,11 @@ int > dsl_dataset_snap_lookup(dsl_dataset_t *ds, const char *name, uint64_t = *value) > { > objset_t *mos =3D ds->ds_dir->dd_pool->dp_meta_objset; > - uint64_t snapobj =3D ds->ds_phys->ds_snapnames_zapobj; > + uint64_t snapobj =3D dsl_dataset_phys(ds)->ds_snapnames_zapobj; > matchtype_t mt; > int err; >=20 > - if (ds->ds_phys->ds_flags & DS_FLAG_CI_DATASET) > + if (dsl_dataset_phys(ds)->ds_flags & DS_FLAG_CI_DATASET) > mt =3D MT_FIRST; > else > mt =3D MT_EXACT; > @@ -332,13 +337,13 @@ dsl_dataset_snap_remove(dsl_dataset_t *d > boolean_t adj_cnt) > { > objset_t *mos =3D ds->ds_dir->dd_pool->dp_meta_objset; > - uint64_t snapobj =3D ds->ds_phys->ds_snapnames_zapobj; > + uint64_t snapobj =3D dsl_dataset_phys(ds)->ds_snapnames_zapobj; > matchtype_t mt; > int err; >=20 > dsl_dir_snap_cmtime_update(ds->ds_dir); >=20 > - if (ds->ds_phys->ds_flags & DS_FLAG_CI_DATASET) > + if (dsl_dataset_phys(ds)->ds_flags & DS_FLAG_CI_DATASET) > mt =3D MT_FIRST; > else > mt =3D MT_EXACT; > @@ -384,7 +389,6 @@ dsl_dataset_hold_obj(dsl_pool_t *dp, uin > ds =3D kmem_zalloc(sizeof (dsl_dataset_t), KM_SLEEP); > ds->ds_dbuf =3D dbuf; > ds->ds_object =3D dsobj; > - ds->ds_phys =3D dbuf->db_data; >=20 > mutex_init(&ds->ds_lock, NULL, MUTEX_DEFAULT, NULL); > mutex_init(&ds->ds_opening_lock, NULL, MUTEX_DEFAULT, = NULL); > @@ -393,7 +397,7 @@ dsl_dataset_hold_obj(dsl_pool_t *dp, uin >=20 > bplist_create(&ds->ds_pending_deadlist); > dsl_deadlist_open(&ds->ds_deadlist, > - mos, ds->ds_phys->ds_deadlist_obj); > + mos, dsl_dataset_phys(ds)->ds_deadlist_obj); >=20 > list_create(&ds->ds_sendstreams, sizeof (dmu_sendarg_t), > offsetof(dmu_sendarg_t, dsa_link)); > @@ -408,7 +412,8 @@ dsl_dataset_hold_obj(dsl_pool_t *dp, uin >=20 > if (err =3D=3D 0) { > err =3D dsl_dir_hold_obj(dp, > - ds->ds_phys->ds_dir_obj, NULL, ds, = &ds->ds_dir); > + dsl_dataset_phys(ds)->ds_dir_obj, NULL, ds, > + &ds->ds_dir); > } > if (err !=3D 0) { > mutex_destroy(&ds->ds_lock); > @@ -424,9 +429,9 @@ dsl_dataset_hold_obj(dsl_pool_t *dp, uin >=20 > if (!dsl_dataset_is_snapshot(ds)) { > ds->ds_snapname[0] =3D '\0'; > - if (ds->ds_phys->ds_prev_snap_obj !=3D 0) { > + if (dsl_dataset_phys(ds)->ds_prev_snap_obj !=3D = 0) { > err =3D dsl_dataset_hold_obj(dp, > - ds->ds_phys->ds_prev_snap_obj, > + = dsl_dataset_phys(ds)->ds_prev_snap_obj, > ds, &ds->ds_prev); > } > if (doi.doi_type =3D=3D DMU_OTN_ZAP_METADATA) { > @@ -440,10 +445,11 @@ dsl_dataset_hold_obj(dsl_pool_t *dp, uin > } else { > if (zfs_flags & ZFS_DEBUG_SNAPNAMES) > err =3D dsl_dataset_get_snapname(ds); > - if (err =3D=3D 0 && ds->ds_phys->ds_userrefs_obj = !=3D 0) { > + if (err =3D=3D 0 && > + dsl_dataset_phys(ds)->ds_userrefs_obj !=3D = 0) { > err =3D zap_count( > ds->ds_dir->dd_pool->dp_meta_objset, > - ds->ds_phys->ds_userrefs_obj, > + = dsl_dataset_phys(ds)->ds_userrefs_obj, > &ds->ds_userrefs); > } > } > @@ -462,7 +468,7 @@ dsl_dataset_hold_obj(dsl_pool_t *dp, uin > } >=20 > if (err !=3D 0 || (winner =3D dmu_buf_set_user_ie(dbuf, = ds, > - &ds->ds_phys, dsl_dataset_evict)) !=3D NULL) { > + dsl_dataset_evict)) !=3D NULL) { > bplist_destroy(&ds->ds_pending_deadlist); > dsl_deadlist_close(&ds->ds_deadlist); > if (ds->ds_prev) > @@ -480,12 +486,12 @@ dsl_dataset_hold_obj(dsl_pool_t *dp, uin > ds =3D winner; > } else { > ds->ds_fsid_guid =3D > - unique_insert(ds->ds_phys->ds_fsid_guid); > + = unique_insert(dsl_dataset_phys(ds)->ds_fsid_guid); > } > } > ASSERT3P(ds->ds_dbuf, =3D=3D, dbuf); > - ASSERT3P(ds->ds_phys, =3D=3D, dbuf->db_data); > - ASSERT(ds->ds_phys->ds_prev_snap_obj !=3D 0 || > + ASSERT3P(dsl_dataset_phys(ds), =3D=3D, dbuf->db_data); > + ASSERT(dsl_dataset_phys(ds)->ds_prev_snap_obj !=3D 0 || > spa_version(dp->dp_spa) < SPA_VERSION_ORIGIN || > dp->dp_origin_snap =3D=3D NULL || ds =3D=3D = dp->dp_origin_snap); > *dsp =3D ds; > @@ -506,7 +512,7 @@ dsl_dataset_hold(dsl_pool_t *dp, const c > return (err); >=20 > ASSERT(dsl_pool_config_held(dp)); > - obj =3D dd->dd_phys->dd_head_dataset_obj; > + obj =3D dsl_dir_phys(dd)->dd_head_dataset_obj; > if (obj !=3D 0) > err =3D dsl_dataset_hold_obj(dp, obj, tag, dsp); > else > @@ -673,9 +679,9 @@ dsl_dataset_create_sync_dd(dsl_dir_t *dd > origin =3D dp->dp_origin_snap; >=20 > ASSERT(origin =3D=3D NULL || origin->ds_dir->dd_pool =3D=3D dp); > - ASSERT(origin =3D=3D NULL || origin->ds_phys->ds_num_children > = 0); > + ASSERT(origin =3D=3D NULL || = dsl_dataset_phys(origin)->ds_num_children > 0); > ASSERT(dmu_tx_is_syncing(tx)); > - ASSERT(dd->dd_phys->dd_head_dataset_obj =3D=3D 0); > + ASSERT(dsl_dir_phys(dd)->dd_head_dataset_obj =3D=3D 0); >=20 > dsobj =3D dmu_object_alloc(mos, DMU_OT_DSL_DATASET, 0, > DMU_OT_DSL_DATASET, sizeof (dsl_dataset_phys_t), tx); > @@ -701,55 +707,58 @@ dsl_dataset_create_sync_dd(dsl_dir_t *dd >=20 > dsphys->ds_prev_snap_obj =3D origin->ds_object; > dsphys->ds_prev_snap_txg =3D > - origin->ds_phys->ds_creation_txg; > + dsl_dataset_phys(origin)->ds_creation_txg; > dsphys->ds_referenced_bytes =3D > - origin->ds_phys->ds_referenced_bytes; > + dsl_dataset_phys(origin)->ds_referenced_bytes; > dsphys->ds_compressed_bytes =3D > - origin->ds_phys->ds_compressed_bytes; > + dsl_dataset_phys(origin)->ds_compressed_bytes; > dsphys->ds_uncompressed_bytes =3D > - origin->ds_phys->ds_uncompressed_bytes; > - dsphys->ds_bp =3D origin->ds_phys->ds_bp; > + dsl_dataset_phys(origin)->ds_uncompressed_bytes; > + dsphys->ds_bp =3D dsl_dataset_phys(origin)->ds_bp; >=20 > /* > * Inherit flags that describe the dataset's contents > * (INCONSISTENT) or properties (Case Insensitive). > */ > - dsphys->ds_flags |=3D origin->ds_phys->ds_flags & > + dsphys->ds_flags |=3D dsl_dataset_phys(origin)->ds_flags = & > (DS_FLAG_INCONSISTENT | DS_FLAG_CI_DATASET); >=20 > if (origin->ds_large_blocks) > = dsl_dataset_activate_large_blocks_sync_impl(dsobj, tx); >=20 > dmu_buf_will_dirty(origin->ds_dbuf, tx); > - origin->ds_phys->ds_num_children++; > + dsl_dataset_phys(origin)->ds_num_children++; >=20 > VERIFY0(dsl_dataset_hold_obj(dp, > - origin->ds_dir->dd_phys->dd_head_dataset_obj, FTAG, = &ohds)); > + dsl_dir_phys(origin->ds_dir)->dd_head_dataset_obj, > + FTAG, &ohds)); > dsphys->ds_deadlist_obj =3D = dsl_deadlist_clone(&ohds->ds_deadlist, > dsphys->ds_prev_snap_txg, dsphys->ds_prev_snap_obj, = tx); > dsl_dataset_rele(ohds, FTAG); >=20 > if (spa_version(dp->dp_spa) >=3D = SPA_VERSION_NEXT_CLONES) { > - if (origin->ds_phys->ds_next_clones_obj =3D=3D = 0) { > - origin->ds_phys->ds_next_clones_obj =3D > + if (dsl_dataset_phys(origin)->ds_next_clones_obj = =3D=3D 0) { > + = dsl_dataset_phys(origin)->ds_next_clones_obj =3D > zap_create(mos, > DMU_OT_NEXT_CLONES, DMU_OT_NONE, 0, = tx); > } > VERIFY0(zap_add_int(mos, > - origin->ds_phys->ds_next_clones_obj, dsobj, = tx)); > + = dsl_dataset_phys(origin)->ds_next_clones_obj, > + dsobj, tx)); > } >=20 > dmu_buf_will_dirty(dd->dd_dbuf, tx); > - dd->dd_phys->dd_origin_obj =3D origin->ds_object; > + dsl_dir_phys(dd)->dd_origin_obj =3D origin->ds_object; > if (spa_version(dp->dp_spa) >=3D SPA_VERSION_DIR_CLONES) = { > - if (origin->ds_dir->dd_phys->dd_clones =3D=3D 0) = { > + if (dsl_dir_phys(origin->ds_dir)->dd_clones =3D=3D= 0) { > = dmu_buf_will_dirty(origin->ds_dir->dd_dbuf, tx); > - origin->ds_dir->dd_phys->dd_clones =3D > + dsl_dir_phys(origin->ds_dir)->dd_clones = =3D > zap_create(mos, > DMU_OT_DSL_CLONES, DMU_OT_NONE, 0, = tx); > } > VERIFY0(zap_add_int(mos, > - origin->ds_dir->dd_phys->dd_clones, dsobj, = tx)); > + dsl_dir_phys(origin->ds_dir)->dd_clones, > + dsobj, tx)); > } > } >=20 > @@ -759,7 +768,7 @@ dsl_dataset_create_sync_dd(dsl_dir_t *dd > dmu_buf_rele(dbuf, FTAG); >=20 > dmu_buf_will_dirty(dd->dd_dbuf, tx); > - dd->dd_phys->dd_head_dataset_obj =3D dsobj; > + dsl_dir_phys(dd)->dd_head_dataset_obj =3D dsobj; >=20 > return (dsobj); > } > @@ -841,20 +850,20 @@ dsl_dataset_recalc_head_uniq(dsl_dataset >=20 > ASSERT(!dsl_dataset_is_snapshot(ds)); >=20 > - if (ds->ds_phys->ds_prev_snap_obj !=3D 0) > - mrs_used =3D ds->ds_prev->ds_phys->ds_referenced_bytes; > + if (dsl_dataset_phys(ds)->ds_prev_snap_obj !=3D 0) > + mrs_used =3D = dsl_dataset_phys(ds->ds_prev)->ds_referenced_bytes; > else > mrs_used =3D 0; >=20 > dsl_deadlist_space(&ds->ds_deadlist, &dlused, &dlcomp, = &dluncomp); >=20 > ASSERT3U(dlused, <=3D, mrs_used); > - ds->ds_phys->ds_unique_bytes =3D > - ds->ds_phys->ds_referenced_bytes - (mrs_used - dlused); > + dsl_dataset_phys(ds)->ds_unique_bytes =3D > + dsl_dataset_phys(ds)->ds_referenced_bytes - (mrs_used - = dlused); >=20 > if (spa_version(ds->ds_dir->dd_pool->dp_spa) >=3D > SPA_VERSION_UNIQUE_ACCURATE) > - ds->ds_phys->ds_flags |=3D DS_FLAG_UNIQUE_ACCURATE; > + dsl_dataset_phys(ds)->ds_flags |=3D = DS_FLAG_UNIQUE_ACCURATE; > } >=20 > void > @@ -865,8 +874,9 @@ dsl_dataset_remove_from_next_clones(dsl_ > uint64_t count; > int err; >=20 > - ASSERT(ds->ds_phys->ds_num_children >=3D 2); > - err =3D zap_remove_int(mos, ds->ds_phys->ds_next_clones_obj, = obj, tx); > + ASSERT(dsl_dataset_phys(ds)->ds_num_children >=3D 2); > + err =3D zap_remove_int(mos, = dsl_dataset_phys(ds)->ds_next_clones_obj, > + obj, tx); > /* > * The err should not be ENOENT, but a bug in a previous version > * of the code could cause upgrade_clones_cb() to not set > @@ -879,16 +889,16 @@ dsl_dataset_remove_from_next_clones(dsl_ > */ > if (err !=3D ENOENT) > VERIFY0(err); > - ASSERT0(zap_count(mos, ds->ds_phys->ds_next_clones_obj, > + ASSERT0(zap_count(mos, dsl_dataset_phys(ds)->ds_next_clones_obj, > &count)); > - ASSERT3U(count, <=3D, ds->ds_phys->ds_num_children - 2); > + ASSERT3U(count, <=3D, dsl_dataset_phys(ds)->ds_num_children - = 2); > } >=20 >=20 > blkptr_t * > dsl_dataset_get_blkptr(dsl_dataset_t *ds) > { > - return (&ds->ds_phys->ds_bp); > + return (&dsl_dataset_phys(ds)->ds_bp); > } >=20 > void > @@ -900,7 +910,7 @@ dsl_dataset_set_blkptr(dsl_dataset_t *ds > tx->tx_pool->dp_meta_rootbp =3D *bp; > } else { > dmu_buf_will_dirty(ds->ds_dbuf, tx); > - ds->ds_phys->ds_bp =3D *bp; > + dsl_dataset_phys(ds)->ds_bp =3D *bp; > } > } >=20 > @@ -920,7 +930,7 @@ dsl_dataset_dirty(dsl_dataset_t *ds, dmu >=20 > ASSERT(ds->ds_objset !=3D NULL); >=20 > - if (ds->ds_phys->ds_next_snap_obj !=3D 0) > + if (dsl_dataset_phys(ds)->ds_next_snap_obj !=3D 0) > panic("dirtying snapshot!"); >=20 > dp =3D ds->ds_dir->dd_pool; > @@ -956,7 +966,7 @@ dsl_dataset_snapshot_reserve_space(dsl_d > * outside of the reservation. > */ > ASSERT(ds->ds_reserved =3D=3D 0 || DS_UNIQUE_IS_ACCURATE(ds)); > - asize =3D MIN(ds->ds_phys->ds_unique_bytes, ds->ds_reserved); > + asize =3D MIN(dsl_dataset_phys(ds)->ds_unique_bytes, = ds->ds_reserved); > if (asize > dsl_dir_space_available(ds->ds_dir, NULL, 0, TRUE)) > return (SET_ERROR(ENOSPC)); >=20 > @@ -993,7 +1003,7 @@ dsl_dataset_snapshot_check_impl(dsl_data > * We don't allow multiple snapshots of the same txg. If there > * is already one, try again. > */ > - if (ds->ds_phys->ds_prev_snap_txg >=3D tx->tx_txg) > + if (dsl_dataset_phys(ds)->ds_prev_snap_txg >=3D tx->tx_txg) > return (SET_ERROR(EAGAIN)); >=20 > /* > @@ -1219,35 +1229,38 @@ dsl_dataset_snapshot_sync_impl(dsl_datas > dsphys->ds_fsid_guid =3D unique_create(); > (void) random_get_pseudo_bytes((void*)&dsphys->ds_guid, > sizeof (dsphys->ds_guid)); > - dsphys->ds_prev_snap_obj =3D ds->ds_phys->ds_prev_snap_obj; >=20 > *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** >=20 >=20 From owner-svn-src-vendor@FreeBSD.ORG Wed Dec 10 20:56:15 2014 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 96E9E76D; Wed, 10 Dec 2014 20:56:15 +0000 (UTC) Received: from anubis.delphij.net (anubis.delphij.net [IPv6:2001:470:1:117::25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "anubis.delphij.net", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 77EEB18C; Wed, 10 Dec 2014 20:56:15 +0000 (UTC) Received: from zeta.ixsystems.com (unknown [12.229.62.2]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id 3605C18EE7; Wed, 10 Dec 2014 12:56:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=delphij.net; s=anubis; t=1418244975; x=1418259375; bh=ZdYK9SeHHLBqv8aJVveTT1A9aHi5TRh/1cKeV0/qNIk=; h=Date:From:Reply-To:To:CC:Subject:References:In-Reply-To; b=raZD4W+L4grcxl67lnGJEOKhWxFzRgkoWKnamEOwsMCwtVFXfSXP2MMghxyE4eTlV yh4uXx81OL3vaNQW1FVVWMjqligC6naTyR26WPxmf+Zsg528PPfueYwsKw6yBDeva4 LVKgzxD4lDyJcnQrr+W9fV3vs7ZcJ9NonhjLTGpg= Message-ID: <5488B36E.4060307@delphij.net> Date: Wed, 10 Dec 2014 12:56:14 -0800 From: Xin Li Reply-To: d@delphij.net Organization: The FreeBSD Project MIME-Version: 1.0 To: "Justin T. Gibbs" , Xin LI Subject: Re: svn commit: r275551 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor-sys/illumos/dist/uts/common/fs/zfs/sys vendor/illumos/dist/cmd/zdb References: <201412060050.sB60oxYu045859@svn.freebsd.org> In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-vendor@freebsd.org, will@FreeBSD.org X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Dec 2014 20:56:15 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 12/10/14 12:29, Justin T. Gibbs wrote: > What’s the policy for the commit log on vendor imports from > illumos? Since illumos does not allow “FreeBSD style” commit > messages, I’ve been putting that data into the corresponding > illumos issue that I create. So this information isn’t lost during > the merge to FreeBSD, I think we should pull the issue data into > our commit messages in addition to data taken from the git commit > in illumos-gate. > > One minor gripe about the illumos issue tracker is that I’ve found > it hard to keep it from mangling the formatting of text. For > example, look at the commit log I put into the history section of > https://www.illumos.org/issues/5314. Instead of fighting with > that, I’ve been pushing my “FreeBSD commit log” as the description > of the review associated with the bug and just linking the issue to > the review. You can see that in the next big change from Spectra > that is currently going through the review process: > > https://www.illumos.org/issues/5056 > https://reviews.csiden.org/r/131/ I think we traditionally do imports as-is, including the commit message, to vendor[-sys]/ area. This is mainly to make future cross-referencing easy, i.e. what does that "MFV 275551" reference to an Illumos commit? Should Illumos change to a different SCM in the future, we will still be able to find the commit by looking up the commit logs of theirs. However when merging to head/ we should use FreeBSD style commit (i.e. your commit messages) to give more information about the change. Normally we will reference the vendor import revision and Illumos ticket as well. Cheers, - -- Xin LI https://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.1.0 (FreeBSD) iQIcBAEBCgAGBQJUiLNqAAoJEJW2GBstM+nsJVcP/j3vDqLb+NV0RYYoUzFUnz7z muU/HIECPo/3vt1ujUX6MROFYWLIotgEtpVFmHgXVqzus3q4qSI2bMrXjSzD0Gze X9d8uTzlg5W62/1FiREK7BTFewggoCKTvySfJlQ0gw+d03mcNVCESIRhdCRz8c1v aYYZv684z0k2BpSPfNFbFe2r/xOTDcVviRT36msRaRGjH//uQRs9itP7mZBGjwxi BlcEJ1U+y/h0SpDex48rNG9ItxpZfrUZA3lsvhqJNOFn9cEwvyVQadueTBBQTCLh tjN2yqRraZ+eYKjDx1+mVXzzq84GTYnAZQzAHqDzffwASG7rovY4UFwcCvOErSwK uUSXTe8H94iWWNkD/YCXfyAxQH3GLdfwvwtJ0EtRhu/U4LCd+9gakvxASfOB16Q7 VF08okZzsviP5MqyJh5npr0G+5DLKLNFj2uoL+cqRd8u7C6//taywb6yofsneWkC d8iLHZVl52XuhO0KBcQUMMv8oX99y5pXrkpo6aeQ5eELiCuBm6aYo/fCxJ13EIxd ld5Rfk01aq1LJhFS7LWMIUpY2D1HGqTwaE/l0zmdTvIN74DVJIllGy5oKRtRoQEN VRGWGBl541cs7I1FxGaFyjY3UT38a2MjM3OdkzA/E+cOjrCagTc/Lr5BuJjEgz08 HxI5axE2CuSTP1xrFgl7 =iadt -----END PGP SIGNATURE----- From owner-svn-src-vendor@FreeBSD.ORG Thu Dec 11 06:00:58 2014 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 99F8670C; Thu, 11 Dec 2014 06:00:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::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 8401BFB; Thu, 11 Dec 2014 06:00:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBB60wQi088480; Thu, 11 Dec 2014 06:00:58 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBB60r7O088453; Thu, 11 Dec 2014 06:00:53 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201412110600.sBB60r7O088453@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Thu, 11 Dec 2014 06:00:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r275696 - in vendor/file/dist: . doc magic magic/Magdir python src tests X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Dec 2014 06:00:58 -0000 Author: delphij Date: Thu Dec 11 06:00:53 2014 New Revision: 275696 URL: https://svnweb.freebsd.org/changeset/base/275696 Log: Vendor import of file 5.21. Added: vendor/file/dist/magic/Magdir/kerberos vendor/file/dist/magic/Magdir/meteorological Deleted: vendor/file/dist/magic/Magdir/rinex Modified: vendor/file/dist/ChangeLog vendor/file/dist/Makefile.in vendor/file/dist/TODO vendor/file/dist/aclocal.m4 vendor/file/dist/config.h.in vendor/file/dist/configure vendor/file/dist/configure.ac vendor/file/dist/doc/Makefile.in vendor/file/dist/doc/file.man vendor/file/dist/doc/libmagic.man vendor/file/dist/magic/Localstuff vendor/file/dist/magic/Magdir/android vendor/file/dist/magic/Magdir/animation vendor/file/dist/magic/Magdir/archive vendor/file/dist/magic/Magdir/blender vendor/file/dist/magic/Magdir/commands vendor/file/dist/magic/Magdir/compress vendor/file/dist/magic/Magdir/database vendor/file/dist/magic/Magdir/elf vendor/file/dist/magic/Magdir/filesystems vendor/file/dist/magic/Magdir/images vendor/file/dist/magic/Magdir/jpeg vendor/file/dist/magic/Magdir/linux vendor/file/dist/magic/Magdir/macintosh vendor/file/dist/magic/Magdir/msooxml vendor/file/dist/magic/Magdir/netbsd vendor/file/dist/magic/Magdir/pascal vendor/file/dist/magic/Magdir/pgp vendor/file/dist/magic/Magdir/python vendor/file/dist/magic/Magdir/riff vendor/file/dist/magic/Magdir/sequent vendor/file/dist/magic/Magdir/sereal vendor/file/dist/magic/Magdir/ssh vendor/file/dist/magic/Magdir/vms vendor/file/dist/magic/Magdir/vorbis vendor/file/dist/magic/Magdir/windows vendor/file/dist/magic/Makefile.am vendor/file/dist/magic/Makefile.in vendor/file/dist/missing vendor/file/dist/python/Makefile.in vendor/file/dist/src/Makefile.in vendor/file/dist/src/apprentice.c vendor/file/dist/src/ascmagic.c vendor/file/dist/src/cdf.c vendor/file/dist/src/cdf.h vendor/file/dist/src/compress.c vendor/file/dist/src/elfclass.h vendor/file/dist/src/encoding.c vendor/file/dist/src/file.c vendor/file/dist/src/file.h vendor/file/dist/src/file_opts.h vendor/file/dist/src/fsmagic.c vendor/file/dist/src/funcs.c vendor/file/dist/src/getline.c vendor/file/dist/src/magic.c vendor/file/dist/src/magic.h vendor/file/dist/src/magic.h.in vendor/file/dist/src/pread.c vendor/file/dist/src/readcdf.c vendor/file/dist/src/readelf.c vendor/file/dist/src/softmagic.c vendor/file/dist/src/vasprintf.c vendor/file/dist/tests/Makefile.in Modified: vendor/file/dist/ChangeLog ============================================================================== --- vendor/file/dist/ChangeLog Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/ChangeLog Thu Dec 11 06:00:53 2014 (r275696) @@ -1,3 +1,69 @@ +2014-12-10 20:01 Christos Zoulas + + * release 5.21 + +2014-11-27 18:40 Christos Zoulas + + * Allow setting more parameters from the command line. + * Split name/use and indirect magic recursion limits. + +2014-11-27 11:12 Christos Zoulas + + * Adjust ELF parameters and the default recursion + level. + * Allow setting the recursion level dynamically. + +2014-11-24 8:55 Christos Zoulas + + * The following fixes resulted from Thomas Jarosch's fuzzing + tests that revealed severe performance issues on pathological + input: + - limit number of elf program and sections processing + - abort elf note processing quickly + - reduce the number of recursion levels from 20 to 10 + - preserve error messages in indirect magic handling + +2014-11-12 10:30 Christos Zoulas + + * fix bogus free in the user buffer case. + +2014-11-11 12:35 Christos Zoulas + + * fix out of bounds read for pascal strings + * fix memory leak (not freeing the head of each mlist) + +2014-11-07 10:25 Christos Zoulas + + * When printing strings from a file, convert them to printable + on a byte by byte basis, so that we don't get issues with + locale's trying to interpret random byte streams as UTF-8 and + having printf error out with EILSEQ. + +2014-10-17 11:48 Christos Zoulas + + * fix bounds in note reading (Francisco Alonso / Red Hat) + +2014-10-11 15:02 Christos Zoulas + + * fix autoconf glue for setlocale and locale_t; some OS's + have locale_t in xlocale.h + +2014-10-10 15:01 Christos Zoulas + + * release 5.20 + +2014-08-17 10:01 Christos Zoulas + + * recognize encrypted CDF documents + +2014-08-04 9:18 Christos Zoulas + + * add magic_load_buffers from Brooks Davis + +2014-07-24 16:40 Christos Zoulas + + * add thumbs.db support + 2014-06-12 12:28 Christos Zoulas * release 5.19 Modified: vendor/file/dist/Makefile.in ============================================================================== --- vendor/file/dist/Makefile.in Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/Makefile.in Thu Dec 11 06:00:53 2014 (r275696) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. @@ -618,9 +618,10 @@ distcheck: dist && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + && ../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ Modified: vendor/file/dist/TODO ============================================================================== --- vendor/file/dist/TODO Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/TODO Thu Dec 11 06:00:53 2014 (r275696) @@ -15,3 +15,5 @@ small amount of C is needed (because fas required for soft magic, not the more detailed information given by hard-wired routines). In this regard, note that hplip, which is BSD-licensed, has a magic reimplementation in Python. + +Read the kerberos magic entry for more ideas. Modified: vendor/file/dist/aclocal.m4 ============================================================================== --- vendor/file/dist/aclocal.m4 Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/aclocal.m4 Thu Dec 11 06:00:53 2014 (r275696) @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.14 -*- Autoconf -*- +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. @@ -21,7 +21,7 @@ If you have problems, you may need to re To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # visibility.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2005, 2008, 2010-2013 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2008, 2010-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -113,7 +113,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.14], [], +m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -129,7 +129,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14])dnl +[AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) Modified: vendor/file/dist/config.h.in ============================================================================== --- vendor/file/dist/config.h.in Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/config.h.in Thu Dec 11 06:00:53 2014 (r275696) @@ -44,6 +44,9 @@ /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK +/* Define to 1 if you have the `freelocale' function. */ +#undef HAVE_FREELOCALE + /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO @@ -95,9 +98,15 @@ /* Define to 1 if you have a working `mmap' system call. */ #undef HAVE_MMAP +/* Define to 1 if you have the `newlocale' function. */ +#undef HAVE_NEWLOCALE + /* Define to 1 if you have the `pread' function. */ #undef HAVE_PREAD +/* Define to 1 if you have the `setlocale' function. */ +#undef HAVE_SETLOCALE + /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H @@ -182,6 +191,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H +/* Define to 1 if you have the `uselocale' function. */ +#undef HAVE_USELOCALE + /* Define to 1 if you have the `utime' function. */ #undef HAVE_UTIME @@ -219,6 +231,9 @@ /* Define to 1 if `vfork' works. */ #undef HAVE_WORKING_VFORK +/* Define to 1 if you have the header file. */ +#undef HAVE_XLOCALE_H + /* Define to 1 if you have the header file. */ #undef HAVE_ZLIB_H Modified: vendor/file/dist/configure ============================================================================== --- vendor/file/dist/configure Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/configure Thu Dec 11 06:00:53 2014 (r275696) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for file 5.19. +# Generated by GNU Autoconf 2.69 for file 5.21. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='file' PACKAGE_TARNAME='file' -PACKAGE_VERSION='5.19' -PACKAGE_STRING='file 5.19' +PACKAGE_VERSION='5.21' +PACKAGE_STRING='file 5.21' PACKAGE_BUGREPORT='christos@astron.com' PACKAGE_URL='' @@ -1327,7 +1327,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures file 5.19 to adapt to many kinds of systems. +\`configure' configures file 5.21 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1397,7 +1397,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of file 5.19:";; + short | recursive ) echo "Configuration of file 5.21:";; esac cat <<\_ACEOF @@ -1507,7 +1507,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -file configure 5.19 +file configure 5.21 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2163,7 +2163,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by file $as_me 5.19, which was +It was created by file $as_me 5.21, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3029,7 +3029,7 @@ fi # Define the identity of the package. PACKAGE='file' - VERSION='5.19' + VERSION='5.21' cat >>confdefs.h <<_ACEOF @@ -12785,7 +12785,7 @@ fi done -for ac_header in getopt.h err.h +for ac_header in getopt.h err.h xlocale.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -14191,7 +14191,7 @@ fi fi -for ac_func in strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof +for ac_func in strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof newlocale uselocale freelocale setlocale do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -14998,7 +14998,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by file $as_me 5.19, which was +This file was extended by file $as_me 5.21, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15064,7 +15064,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -file config.status 5.19 +file config.status 5.21 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: vendor/file/dist/configure.ac ============================================================================== --- vendor/file/dist/configure.ac Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/configure.ac Thu Dec 11 06:00:53 2014 (r275696) @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([file],[5.19],[christos@astron.com]) +AC_INIT([file],[5.21],[christos@astron.com]) AM_INIT_AUTOMAKE([subdir-objects foreign]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) @@ -82,7 +82,7 @@ AC_HEADER_MAJOR AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(stdint.h fcntl.h locale.h stdint.h inttypes.h unistd.h) AC_CHECK_HEADERS(stddef.h utime.h wchar.h wctype.h limits.h) -AC_CHECK_HEADERS(getopt.h err.h) +AC_CHECK_HEADERS(getopt.h err.h xlocale.h) AC_CHECK_HEADERS(sys/mman.h sys/stat.h sys/types.h sys/utime.h sys/time.h) AC_CHECK_HEADERS(zlib.h) @@ -138,7 +138,7 @@ else fi]) dnl Checks for functions -AC_CHECK_FUNCS(strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof) +AC_CHECK_FUNCS(strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof newlocale uselocale freelocale setlocale) dnl Provide implementation of some required functions if necessary AC_REPLACE_FUNCS(getopt_long asprintf vasprintf strlcpy strlcat getline ctime_r asctime_r pread strcasestr fmtcheck) Modified: vendor/file/dist/doc/Makefile.in ============================================================================== --- vendor/file/dist/doc/Makefile.in Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/doc/Makefile.in Thu Dec 11 06:00:53 2014 (r275696) @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. Modified: vendor/file/dist/doc/file.man ============================================================================== --- vendor/file/dist/doc/file.man Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/doc/file.man Thu Dec 11 06:00:53 2014 (r275696) @@ -1,5 +1,5 @@ -.\" $File: file.man,v 1.106 2014/03/07 23:11:51 christos Exp $ -.Dd January 30, 2014 +.\" $File: file.man,v 1.110 2014/11/28 02:46:39 christos Exp $ +.Dd November 27, 2014 .Dt FILE __CSECTION__ .Os .Sh NAME @@ -16,6 +16,7 @@ .Op Fl F Ar separator .Op Fl f Ar namefile .Op Fl m Ar magicfiles +.Op Fl P Ar name=value .Ar .Ek .Nm @@ -303,6 +304,15 @@ or attempt to preserve the access time of files analyzed, to pretend that .Nm never read them. +.It Fl P , Fl Fl parameter Ar name=value +Set various parameter limits. +.Bl -column "elf_phnum" "Default" "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -offset indent +.It Sy "Name" Ta Sy "Default" Ta Sy "Explanation" +.It Li indir Ta 15 Ta recursion limit for indirect magic +.It Li name Ta 30 Ta use count limit for name/use magic +.It Li elf_phnum Ta 128 Ta max ELF program sections processed +.It Li elf_shnum Ta 32768 Ta max ELF sections processed +.El .It Fl r , Fl Fl raw Don't translate unprintable characters to \eooo. Normally Modified: vendor/file/dist/doc/libmagic.man ============================================================================== --- vendor/file/dist/doc/libmagic.man Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/doc/libmagic.man Thu Dec 11 06:00:53 2014 (r275696) @@ -1,4 +1,4 @@ -.\" $File: libmagic.man,v 1.28 2014/03/02 14:47:16 christos Exp $ +.\" $File: libmagic.man,v 1.33 2014/11/28 02:46:39 christos Exp $ .\" .\" Copyright (c) Christos Zoulas 2003. .\" All Rights Reserved. @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 6, 2012 +.Dd November 27, 2014 .Dt LIBMAGIC 3 .Os .Sh NAME @@ -40,6 +40,9 @@ .Nm magic_compile , .Nm magic_list , .Nm magic_load , +.Nm magic_load_buffers , +.Nm magic_setparam , +.Nm magic_getparam , .Nm magic_version .Nd Magic number recognition library .Sh LIBRARY @@ -71,6 +74,12 @@ .Ft int .Fn magic_load "magic_t cookie" "const char *filename" .Ft int +.Fn magic_load_buffers "magic_t cookie" "void **buffers" "size_t *sizes" "size_t nbuffers" +.Ft int +.Fn magic_getparam "magic_t cookie" "int param" "void *value" +.Ft int +.Fn magic_setparam "magic_t cookie" "int param" "const void *value" +.Ft int .Fn magic_version "void" .Sh DESCRIPTION These functions @@ -253,6 +262,55 @@ adds to the database filename as appropriate. .Pp The +.Fn magic_load_buffers +function takes an array of size +.Fa nbuffers +of +.Fa buffers +with a respective size for each in the array of +.Fa sizes +loaded with the contents of the magic databases from the filesystem. +This function can be used in environment where the magic library does +not have direct access to the filesystem, but can access the magic +database via shared memory or other IPC means. +.Pp +The +.Fn magic_getparam +and +.Fn magic_setparam +allow getting and setting various limits related to the the magic +library. +.Bl -column "MAGIC_PARAM_ELF_PHNUM_MAX" "size_t" "Default" -offset indent +.It Sy "Parameter" Ta Sy "Type" Ta Sy "Default" +.It Li MAGIC_PARAM_INDIR_MAX Ta size_t Ta 15 +.It Li MAGIC_PARAM_NAME_MAX Ta size_t Ta 30 +.It Li MAGIC_PARAM_ELF_PHNUM_MAX Ta size_t Ta 128 +.It Li MAGIC_PARAM_ELF_SHNUM_MAX Ta size_t Ta 32768 +.El +.Pp +The +.Dv MAGIC_PARAM_INDIR_RECURSION +parameter controls how many levels of recursion will be followed for +indirect magic entries. +.Pp +The +.Dv MAGIC_PARAM_NAME_RECURSION +parameter controls how many levels of recursion will be followed for +for name/use calls. +.Pp +The +.Dv MAGIC_PARAM_NAME_MAX +parameter controls the maximum number of calls for name/use. +.Pp +The +.Dv MAGIC_PARAM_PHNUM_MAX +parameter controls how many elf program sections will be processed. +.Pp +The +.Dv MAGIC_PARAM_SHNUM_MAX +parameter controls how many elf sections will be processed. +.Pp +The .Fn magic_version command returns the version number of this library which is compiled into the shared library using the constant Modified: vendor/file/dist/magic/Localstuff ============================================================================== --- vendor/file/dist/magic/Localstuff Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/magic/Localstuff Thu Dec 11 06:00:53 2014 (r275696) @@ -2,6 +2,6 @@ #------------------------------------------------------------------------------ # Localstuff: file(1) magic for locally observed files # -# $File: Localstuff,v 1.4 2003/03/23 04:17:27 christos Exp $ +# $File: Localstuff,v 1.5 2007/01/12 17:38:27 christos Exp $ # Add any locally observed files here. Remember: # text if readable, executable if runnable binary, data if unreadable. Modified: vendor/file/dist/magic/Magdir/android ============================================================================== --- vendor/file/dist/magic/Magdir/android Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/magic/Magdir/android Thu Dec 11 06:00:53 2014 (r275696) @@ -1,6 +1,6 @@ #------------------------------------------------------------ -# $File: android,v 1.4 2014/06/03 19:01:34 christos Exp $ +# $File: android,v 1.7 2014/11/10 05:08:23 christos Exp $ # Various android related magic entries #------------------------------------------------------------ @@ -15,54 +15,11 @@ >0 regex dey\n[0-9]{2}\0 Dalvik dex file (optimized for host) >4 string >000 version %s -# http://android.stackexchange.com/questions/23357/\ -# is-there-a-way-to-look-inside-and-modify-an-adb-backup-created-file/\ -# 23608#23608 -0 string ANDROID\040BACKUP\n Android Backup ->15 string 1\n \b, version 1 ->17 string 0\n \b, uncompressed ->17 string 1\n \b, compressed ->19 string none\n \b, unencrypted ->19 string AES-256\n \b, encrypted AES-256 - -# Android bootimg format -# From https://android.googlesource.com/\ -# platform/system/core/+/master/mkbootimg/bootimg.h -0 string ANDROID! Android bootimg ->8 lelong >0 \b, kernel ->>12 lelong >0 \b (0x%x) ->16 lelong >0 \b, ramdisk ->>20 lelong >0 \b (0x%x) ->24 lelong >0 \b, second stage ->>28 lelong >0 \b (0x%x) ->36 lelong >0 \b, page size: %d ->38 string >0 \b, name: %s ->64 string >0 \b, cmdline (%s) -# Dalvik .dex format. http://retrodev.com/android/dexformat.html -# From "Mike Fleming" -# Fixed to avoid regexec 17 errors on some dex files -# From "Tim Strazzere" -0 string dex\n ->0 regex dex\n[0-9]{2}\0 Dalvik dex file ->4 string >000 version %s -0 string dey\n ->0 regex dey\n[0-9]{2}\0 Dalvik dex file (optimized for host) ->4 string >000 version %s - -# http://android.stackexchange.com/questions/23357/\ -# is-there-a-way-to-look-inside-and-modify-an-adb-backup-created-file/\ -# 23608#23608 -0 string ANDROID\040BACKUP\n Android Backup ->15 string 1\n \b, version 1 ->17 string 0\n \b, uncompressed ->17 string 1\n \b, compressed ->19 string none\n \b, unencrypted ->19 string AES-256\n \b, encrypted AES-256 - # Android bootimg format # From https://android.googlesource.com/\ # platform/system/core/+/master/mkbootimg/bootimg.h 0 string ANDROID! Android bootimg +>1024 string LOKI\01 \b, LOKI'd >8 lelong >0 \b, kernel >>12 lelong >0 \b (0x%x) >16 lelong >0 \b, ramdisk @@ -98,3 +55,85 @@ #>>>>>&1 regex/1l .* \b, PBKDF2 rounds: %s #>>>>>>&1 regex/1l .* \b, IV: %s #>>>>>>>&1 regex/1l .* \b, Key: %s + +# *.pit files by Joerg Jenderek +# http://forum.xda-developers.com/showthread.php?p=9122369 +# http://forum.xda-developers.com/showthread.php?t=816449 +# Partition Information Table for Samsung's smartphone with Android +# used by flash software Odin +0 ulelong 0x12349876 +# 1st pit entry marker +>0x01C ulequad&0xFFFFFFFCFFFFFFFC =0x0000000000000000 +# minimal 13 and maximal 18 PIT entries found +>>4 ulelong <128 Partition Information Table for Samsung smartphone +>>>4 ulelong x \b, %d entries +# 1. pit entry +>>>4 ulelong >0 \b; #1 +>>>0x01C use PIT-entry +>>>4 ulelong >1 \b; #2 +>>>0x0A0 use PIT-entry +>>>4 ulelong >2 \b; #3 +>>>0x124 use PIT-entry +>>>4 ulelong >3 \b; #4 +>>>0x1A8 use PIT-entry +>>>4 ulelong >4 \b; #5 +>>>0x22C use PIT-entry +>>>4 ulelong >5 \b; #6 +>>>0x2B0 use PIT-entry +>>>4 ulelong >6 \b; #7 +>>>0x334 use PIT-entry +>>>4 ulelong >7 \b; #8 +>>>0x3B8 use PIT-entry +>>>4 ulelong >8 \b; #9 +>>>0x43C use PIT-entry +>>>4 ulelong >9 \b; #10 +>>>0x4C0 use PIT-entry +>>>4 ulelong >10 \b; #11 +>>>0x544 use PIT-entry +>>>4 ulelong >11 \b; #12 +>>>0x5C8 use PIT-entry +>>>4 ulelong >12 \b; #13 +>>>>0x64C use PIT-entry +# 14. pit entry +>>>4 ulelong >13 \b; #14 +>>>>0x6D0 use PIT-entry +>>>4 ulelong >14 \b; #15 +>>>0x754 use PIT-entry +>>>4 ulelong >15 \b; #16 +>>>0x7D8 use PIT-entry +>>>4 ulelong >16 \b; #17 +>>>0x85C use PIT-entry +# 18. pit entry +>>>4 ulelong >17 \b; #18 +>>>0x8E0 use PIT-entry + +0 name PIT-entry +# garbage value implies end of pit entries +>0x00 ulequad&0xFFFFFFFCFFFFFFFC =0x0000000000000000 +# skip empty partition name +>>0x24 ubyte !0 +# partition name +>>>0x24 string >\0 %-.32s +# flags +>>>0x0C ulelong&0x00000002 2 \b+RW +# partition ID: +# 0~IPL,MOVINAND,GANG;1~PIT,GPT;2~HIDDEN;3~SBL,HIDDEN;4~SBL2,HIDDEN;5~BOOT;6~KENREl,RECOVER,misc;7~RECOVER +# ;11~MODEM;20~efs;21~PARAM;22~FACTORY,SYSTEM;23~DBDATAFS,USERDATA;24~CACHE;80~BOOTLOADER;81~TZSW +>>>0x08 ulelong x (0x%x) +# filename +>>>0x44 string >\0 "%-.64s" +#>>>0x18 ulelong >0 +# blocksize in 512 byte units ? +#>>>>0x18 ulelong x \b, %db +# partition size in blocks ? +#>>>>0x22 ulelong x \b*%d + +# Android bootimg format +# From https://android.googlesource.com/\ +# platform/system/core/+/master/libsparse/sparse_format.h +0 lelong 0xed26ff3a Android sparse image +>4 leshort x \b, version: %d +>6 leshort x \b.%d +>16 lelong x \b, Total of %d +>12 lelong x \b %d-byte output blocks in +>20 lelong x \b %d input chunks. Modified: vendor/file/dist/magic/Magdir/animation ============================================================================== --- vendor/file/dist/magic/Magdir/animation Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/magic/Magdir/animation Thu Dec 11 06:00:53 2014 (r275696) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: animation,v 1.53 2014/04/30 21:41:02 christos Exp $ +# $File: animation,v 1.56 2014/10/23 23:12:51 christos Exp $ # animation: file(1) magic for animation/movie formats # # animation formats @@ -32,43 +32,155 @@ !:mime application/x-quicktime-player 4 string/W jP JPEG 2000 image !:mime image/jp2 +# http://www.ftyps.com/ with local additions 4 string ftyp ISO Media ->8 string isom \b, MPEG v4 system, version 1 -!:mime video/mp4 ->8 string iso2 \b, MPEG v4 system, part 12 revision ->8 string mp41 \b, MPEG v4 system, version 1 -!:mime video/mp4 ->8 string mp42 \b, MPEG v4 system, version 2 -!:mime video/mp4 ->8 string mp7t \b, MPEG v4 system, MPEG v7 XML ->8 string mp7b \b, MPEG v4 system, MPEG v7 binary XML ->8 string/W jp2 \b, JPEG 2000 -!:mime image/jp2 +>8 string 3g2 \b, MPEG v4 system, 3GPP2 +!:mime video/3gpp2 +>>11 byte 4 \b v4 (H.263/AMR GSM 6.10) +>>11 byte 5 \b v5 (H.263/AMR GSM 6.10) +>>11 byte 6 \b v6 (ITU H.264/AMR GSM 6.10) +>>11 byte a \b C.S0050-0 V1.0 +>>11 byte b \b C.S0050-0-A V1.0.0 +>>11 byte c \b C.S0050-0-B V1.0 >8 string 3ge \b, MPEG v4 system, 3GPP !:mime video/3gpp +>>11 byte 6 \b, Release 6 MBMS Extended Presentations +>>11 byte 7 \b, Release 7 MBMS Extended Presentations >8 string 3gg \b, MPEG v4 system, 3GPP +>11 byte 6 \b, Release 6 General Profile !:mime video/3gpp >8 string 3gp \b, MPEG v4 system, 3GPP +>11 byte 1 \b, Release %d (non existent) +>11 byte 2 \b, Release %d (non existent) +>11 byte 3 \b, Release %d (non existent) +>11 byte 4 \b, Release %d +>11 byte 5 \b, Release %d +>11 byte 6 \b, Release %d +>11 byte 7 \b, Release %d Streaming Servers !:mime video/3gpp >8 string 3gs \b, MPEG v4 system, 3GPP +>11 byte 7 \b, Release %d Streaming Servers !:mime video/3gpp ->8 string 3g2 \b, MPEG v4 system, 3GPP2 +>8 string avc1 \b, MPEG v4 system, 3GPP JVT AVC [ISO 14496-12:2005] +!:mime video/mp4 +>8 string/W qt \b, Apple QuickTime movie +!:mime video/quicktime +>8 string CAEP \b, Canon Digital Camera +>8 string caqv \b, Casio Digital Camera +>8 string CDes \b, Convergent Design +>8 string da0a \b, DMB MAF w/ MPEG Layer II aud, MOT slides, DLS, JPG/PNG/MNG +>8 string da0b \b, DMB MAF, ext DA0A, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string da1a \b, DMB MAF audio with ER-BSAC audio, JPG/PNG/MNG images +>8 string da1b \b, DMB MAF, ext da1a, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string da2a \b, DMB MAF aud w/ HE-AAC v2 aud, MOT slides, DLS, JPG/PNG/MNG +>8 string da2b \b, DMB MAF, ext da2a, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string da3a \b, DMB MAF aud with HE-AAC aud, JPG/PNG/MNG images +>8 string da3b \b, DMB MAF, ext da3a w/ BIFS, 3GPP, DID, TVA, REL, IPMP +>8 string dmb1 \b, DMB MAF supporting all the components defined in the spec +>8 string dmpf \b, Digital Media Project +>8 string drc1 \b, Dirac (wavelet compression), encap in ISO base media (MP4) +>8 string dv1a \b, DMB MAF vid w/ AVC vid, ER-BSAC aud, BIFS, JPG/PNG/MNG, TS +>8 string dv1b \b, DMB MAF, ext dv1a, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string dv2a \b, DMB MAF vid w/ AVC vid, HE-AAC v2 aud, BIFS, JPG/PNG/MNG, TS +>8 string dv2b \b, DMB MAF, ext dv2a, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string dv3a \b, DMB MAF vid w/ AVC vid, HE-AAC aud, BIFS, JPG/PNG/MNG, TS +>8 string dv3b \b, DMB MAF, ext dv3a, with 3GPP timed text, DID, TVA, REL, IPMP +>8 string dvr1 \b, DVB (.DVB) over RTP +!:mime video/vnd.dvb.file +>8 string dvt1 \b, DVB (.DVB) over MPEG-2 Transport Stream +!:mime video/vnd.dvb.file +>8 string F4V \b, Video for Adobe Flash Player 9+ (.F4V) +!:mime video/mp4 +>8 string F4P \b, Protected Video for Adobe Flash Player 9+ (.F4P) +!:mime video/mp4 +>8 string F4A \b, Audio for Adobe Flash Player 9+ (.F4A) +!:mime audio/mp4 +>8 string F4B \b, Audio Book for Adobe Flash Player 9+ (.F4B) +!:mime audio/mp4 +>8 string isc2 \b, ISMACryp 2.0 Encrypted File +# ?/enc-isoff-generic +>8 string iso2 \b, MP4 Base Media v2 [ISO 14496-12:2005] +!:mime video/mp4 +>8 string isom \b, MP4 Base Media v1 [IS0 14496-12:2003] +!:mime video/mp4 +>8 string/W jp2 \b, JPEG 2000 +!:mime image/jp2 +>8 string JP2 \b, JPEG 2000 Image (.JP2) [ISO 15444-1 ?] +!:mime image/jp2 +>8 string JP20 \b, Unknown, from GPAC samples (prob non-existent) +>8 string jpm \b, JPEG 2000 Compound Image (.JPM) [ISO 15444-6] +!:mime image/jpm +>8 string jpx \b, JPEG 2000 w/ extensions (.JPX) [ISO 15444-2] +!:mime image/jpx +>8 string KDDI \b, 3GPP2 EZmovie for KDDI 3G cellphones !:mime video/3gpp2 ->>11 byte 4 \b v4 (H.263/AMR GSM 6.10) ->>11 byte 5 \b v5 (H.263/AMR GSM 6.10) ->>11 byte 6 \b v6 (ITU H.264/AMR GSM 6.10) +>8 string M4A \b, Apple iTunes ALAC/AAC-LC (.M4A) Audio +!:mime audio/x-m4a +>8 string M4B \b, Apple iTunes ALAC/AAC-LC (.M4B) Audio Book +!:mime audio/mp4 +>8 string M4P \b, Apple iTunes ALAC/AAC-LC (.M4P) AES Protected Audio +!:mime video/mp4 +>8 string M4V \b, Apple iTunes Video (.M4V) Video +!:mime video/x-m4v +>8 string M4VH \b, Apple TV (.M4V) +!:mime video/x-m4v +>8 string M4VP \b, Apple iPhone (.M4V) +!:mime video/x-m4v +>8 string mj2s \b, Motion JPEG 2000 [ISO 15444-3] Simple Profile +!:mime video/mj2 +>8 string mjp2 \b, Motion JPEG 2000 [ISO 15444-3] General Profile +!:mime video/mj2 +>8 string mmp4 \b, MPEG-4/3GPP Mobile Profile (.MP4 / .3GP) (for NTT) +!:mime video/mp4 +>8 string mobi \b, MPEG-4, MOBI format +!:mime video/mp4 +>8 string mp21 \b, MPEG-21 [ISO/IEC 21000-9] +>8 string mp41 \b, MP4 v1 [ISO 14496-1:ch13] +!:mime video/mp4 +>8 string mp42 \b, MP4 v2 [ISO 14496-14] +!:mime video/mp4 +>8 string mp71 \b, MP4 w/ MPEG-7 Metadata [per ISO 14496-12] +>8 string mp7t \b, MPEG v4 system, MPEG v7 XML +>8 string mp7b \b, MPEG v4 system, MPEG v7 binary XML >8 string mmp4 \b, MPEG v4 system, 3GPP Mobile !:mime video/mp4 ->8 string avc1 \b, MPEG v4 system, 3GPP JVT AVC -!:mime video/3gpp ->8 string/W M4A \b, MPEG v4 system, iTunes AAC-LC +>8 string MPPI \b, Photo Player, MAF [ISO/IEC 23000-3] +>8 string mqt \b, Sony / Mobile QuickTime (.MQV) US Pat 7,477,830 +!:mime video/quicktime +>8 string MSNV \b, MPEG-4 (.MP4) for SonyPSP +!:mime audio/mp4 +>8 string NDAS \b, MP4 v2 [ISO 14496-14] Nero Digital AAC Audio !:mime audio/mp4 ->8 string/W M4V \b, MPEG v4 system, iTunes AVC-LC +>8 string NDSC \b, MPEG-4 (.MP4) Nero Cinema Profile !:mime video/mp4 ->8 string/W M4P \b, MPEG v4 system, iTunes AES encrypted ->8 string/W M4B \b, MPEG v4 system, iTunes bookmarked ->8 string/W qt \b, Apple QuickTime movie +>8 string NDSH \b, MPEG-4 (.MP4) Nero HDTV Profile +!:mime video/mp4 +>8 string NDSM \b, MPEG-4 (.MP4) Nero Mobile Profile +!:mime video/mp4 +>8 string NDSP \b, MPEG-4 (.MP4) Nero Portable Profile +!:mime video/mp4 +>8 string NDSS \b, MPEG-4 (.MP4) Nero Standard Profile +!:mime video/mp4 +>8 string NDXC \b, H.264/MPEG-4 AVC (.MP4) Nero Cinema Profile +!:mime video/mp4 +>8 string NDXH \b, H.264/MPEG-4 AVC (.MP4) Nero HDTV Profile +!:mime video/mp4 +>8 string NDXM \b, H.264/MPEG-4 AVC (.MP4) Nero Mobile Profile +!:mime video/mp4 +>8 string NDXP \b, H.264/MPEG-4 AVC (.MP4) Nero Portable Profile +!:mime video/mp4 +>8 string NDXS \b, H.264/MPEG-4 AVC (.MP4) Nero Standard Profile +!:mime video/mp4 +>8 string odcf \b, OMA DCF DRM Format 2.0 (OMA-TS-DRM-DCF-V2_0-20060303-A) +>8 string opf2 \b, OMA PDCF DRM Format 2.1 (OMA-TS-DRM-DCF-V2_1-20070724-C) +>8 string opx2 \b, OMA PDCF DRM + XBS ext (OMA-TS-DRM_XBS-V1_0-20070529-C) +>8 string pana \b, Panasonic Digital Camera +>8 string qt \b, Apple QuickTime (.MOV/QT) !:mime video/quicktime +>8 string ROSS \b, Ross Video +>8 string sdv \b, SD Memory Card Video +>8 string ssc1 \b, Samsung stereo, single stream (patent pending) +>8 string ssc2 \b, Samsung stereo, dual stream (patent pending) # MPEG sequences # Scans for all common MPEG header start codes Modified: vendor/file/dist/magic/Magdir/archive ============================================================================== --- vendor/file/dist/magic/Magdir/archive Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/magic/Magdir/archive Thu Dec 11 06:00:53 2014 (r275696) @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------ -# $File: archive,v 1.87 2014/06/03 19:15:58 christos Exp $ +# $File: archive,v 1.88 2014/08/16 10:42:17 christos Exp $ # archive: file(1) magic for archive formats (see also "msdos" for self- # extracting compressed archives) # @@ -954,34 +954,3 @@ >0xE08 search/7776 \x55\xAA >>&-512 indirect x \b; contains -# Symantec GHOST image by Joerg Jenderek at May 2014 -# http://us.norton.com/ghost/ -# http://www.garykessler.net/library/file_sigs.html -0 ubelong&0xFFFFf7f0 0xFEEF0100 Norton GHost image -# *.GHO ->2 ubyte&0x08 0x00 \b, first file -# *.GHS or *.[0-9] with cns program option ->2 ubyte&0x08 0x08 \b, split file -# part of split index interesting for *.ghs ->>4 ubyte x id=0x%x -# compression tag minus one equals numeric compression command line switch z[1-9] ->3 ubyte 0 \b, no compression ->3 ubyte 2 \b, fast compression (Z1) ->3 ubyte 3 \b, medium compression (Z2) ->3 ubyte >3 ->>3 ubyte <11 \b, compression (Z%d-1) ->2 ubyte&0x08 0x00 -# ~ 30 byte password field only for *.gho ->>12 ubequad !0 \b, password protected ->>44 ubyte !1 -# 1~Image All, sector-by-sector only for *.gho ->>>10 ubyte 1 \b, sector copy -# 1~Image Boot track only for *.gho ->>>43 ubyte 1 \b, boot track -# 1~Image Disc only for *.gho implies Image Boot track and sector copy ->>44 ubyte 1 \b, disc sector copy -# optional image description only *.gho ->>0xff string >\0 "%-.254s" -# look for DOS sector end sequence ->0xE08 search/7776 \x55\xAA ->>&-512 indirect x \b; contains Modified: vendor/file/dist/magic/Magdir/blender ============================================================================== --- vendor/file/dist/magic/Magdir/blender Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/magic/Magdir/blender Thu Dec 11 06:00:53 2014 (r275696) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: blender,v 1.5 2009/09/19 16:28:08 christos Exp $ +# $File: blender,v 1.6 2014/08/30 08:34:17 christos Exp $ # blender: file(1) magic for Blender 3D related files # # Native format rule v1.2. For questions use the developers list @@ -35,5 +35,5 @@ >>>0x44 string =GLOB \b. >>>>0x60 beshort x \b%.4d -# Scripts that run in the embeded Python interpreter +# Scripts that run in the embedded Python interpreter 0 string #!BPY Blender3D BPython script Modified: vendor/file/dist/magic/Magdir/commands ============================================================================== --- vendor/file/dist/magic/Magdir/commands Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/magic/Magdir/commands Thu Dec 11 06:00:53 2014 (r275696) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: commands,v 1.50 2014/05/30 16:48:44 christos Exp $ +# $File: commands,v 1.51 2014/09/27 00:12:55 christos Exp $ # commands: file(1) magic for various shells and interpreters # #0 string/w : shell archive or script for antique kernel text @@ -56,7 +56,7 @@ !:mime text/x-awk 0 string/wt #!\ /usr/bin/awk awk script text executable !:mime text/x-awk -0 regex/4096 =^\\s{0,100}BEGIN\\s{0,100}[{] awk script text +0 regex/4096 =^\\s{0,100}BEGIN\\s{0,100}[{] awk or perl script text # AT&T Bell Labs' Plan 9 shell 0 string/wt #!\ /bin/rc Plan 9 rc shell script text executable Modified: vendor/file/dist/magic/Magdir/compress ============================================================================== --- vendor/file/dist/magic/Magdir/compress Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/magic/Magdir/compress Thu Dec 11 06:00:53 2014 (r275696) @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------ -# $File: compress,v 1.58 2014/05/07 19:36:59 christos Exp $ +# $File: compress,v 1.62 2014/09/13 14:27:12 christos Exp $ # compress: file(1) magic for pure-compression formats (no archives) # # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc. @@ -251,3 +251,13 @@ # http://code.google.com/p/snappy/source/browse/trunk/framing_format.txt 0 string \377\006\0\0sNaPpY snappy framed data !:mime application/x-snappy-framed + +# qpress, http://www.quicklz.com/ +0 string qpress10 qpress compressed data +!:mime application/x-qpress + +# Zlib https://www.ietf.org/rfc/rfc6713.txt +0 beshort%31 =0 +>0 byte&0xf =8 +>>0 byte&0x80 =0 zlib compressed data +!:mime application/zlib Modified: vendor/file/dist/magic/Magdir/database ============================================================================== --- vendor/file/dist/magic/Magdir/database Thu Dec 11 00:41:54 2014 (r275695) +++ vendor/file/dist/magic/Magdir/database Thu Dec 11 06:00:53 2014 (r275696) @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: database,v 1.41 2014/06/03 19:17:27 christos Exp $ +# $File: database,v 1.43 2014/10/28 15:47:39 christos Exp $ # database: file(1) magic for various databases # # extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk) @@ -9,9 +9,17 @@ # GDBM magic numbers # Will be maintained as part of the GDBM distribution in the future. # -0 belong 0x13579ace GNU dbm 1.x or ndbm database, big endian +0 belong 0x13579acd GNU dbm 1.x or ndbm database, big endian, 32-bit !:mime application/x-gdbm -0 lelong 0x13579ace GNU dbm 1.x or ndbm database, little endian +0 belong 0x13579ace GNU dbm 1.x or ndbm database, big endian, old +!:mime application/x-gdbm +0 belong 0x13579acf GNU dbm 1.x or ndbm database, big endian, 64-bit +!:mime application/x-gdbm +0 lelong 0x13579acd GNU dbm 1.x or ndbm database, little endian, 32-bit +!:mime application/x-gdbm +0 lelong 0x13579ace GNU dbm 1.x or ndbm database, little endian, old +!:mime application/x-gdbm +0 lelong 0x13579acf GNU dbm 1.x or ndbm database, little endian, 64-bit !:mime application/x-gdbm 0 string GDBM GNU dbm 2.x database !:mime application/x-gdbm @@ -202,27 +210,27 @@ # for multiple index files (*.MDX) Production flag,tag numbers(<=0x30),tag length(<=0x20), reserverd (NULL) >>>>>>>24 ubelong&0x0133f7ff >0 # test for reserved NULL byte ->>>>>>>>47 ubyte x +>>>>>>>>47 ubyte 0 # test for valid TAG key format (0x10 or 0) >>>>>>>>>559 ubyte&0xeF 0 # test MM <= 12 ->>>>>>>>>45 ubeshort <0x0C20 ->>>>>>>>>>45 ubyte >0 ->>>>>>>>>>>46 ubyte <32 ->>>>>>>>>>>>46 ubyte >0 +>>>>>>>>>>45 ubeshort <0x0C20 +>>>>>>>>>>>45 ubyte >0 +>>>>>>>>>>>>46 ubyte <32 +>>>>>>>>>>>>>46 ubyte >0 #!:mime application/x-mdx ->>>>>>>>>>>>>0 use xbase-type ->>>>>>>>>>>>>0 ubyte x \b MDX ->>>>>>>>>>>>>1 ubyte x \b, creation-date ->>>>>>>>>>>>>1 use xbase-date ->>>>>>>>>>>>>44 ubyte x \b, update-date ->>>>>>>>>>>>>44 use xbase-date +>>>>>>>>>>>>>>0 use xbase-type +>>>>>>>>>>>>>>0 ubyte x \b MDX +>>>>>>>>>>>>>>1 ubyte x \b, creation-date +>>>>>>>>>>>>>>1 use xbase-date +>>>>>>>>>>>>>>44 ubyte x \b, update-date +>>>>>>>>>>>>>>44 use xbase-date # No.of tags in use (1,2,5,12) ->>>>>>>>>>>>>28 uleshort x \b, %d +>>>>>>>>>>>>>>28 uleshort x \b, %d # No. of entries in tag (0x30) ->>>>>>>>>>>>>25 ubyte x \b/%d tags +>>>>>>>>>>>>>>25 ubyte x \b/%d tags # Length of tag ->>>>>>>>>>>>>26 ubyte x * %d +>>>>>>>>>>>>>>26 ubyte x * %d # 1st tag name_ >>>>>>>>>>>>>548 string x \b, 1st tag "%.11s" # 2nd tag name @@ -337,60 +345,103 @@ # dBASE III >>>>>>16 ubyte 3 # dBASE III DBT ->>>>>>>0 use xbase-memo-print -# dBASE IV DBT , FoxPro FPT or many PNG , ZIP , DBF garbage +>>>>>>>0 use dbase3-memo-print +# dBASE III DBT without version, dBASE IV DBT , FoxPro FPT , or many ZIP , DBF garbage >>>>>>16 ubyte 0 -# dBASE IV DBT with DBF name or DBF garbage ->>>>>>>8 ubelong >0x40000000 -# skip DBF and catch dBASE IV DBT with DBF name and with non big index of next free block ->>>>>>>>0 ulelong <0x01010002 ->>>>>>>>>0 use xbase-memo-print ->>>>>>>8 ubelong 0 +# unusual dBASE III DBT like angest.dbt, dBASE IV DBT with block size 0 , FoxPro FPT , or garbage PCX DBF +>>>>>>>20 uleshort 0 +# FoxPro FPT , unusual dBASE III DBT like biblio.dbt or garbage +>>>>>>>>8 ulong =0 +>>>>>>>>>6 ubeshort >0 +# skip emacs.PIF +>>>>>>>>>>4 ushort 0 +>>>>>>>>>>>0 use foxpro-memo-print +# dBASE III DBT , garbage +>>>>>>>>>6 ubeshort 0 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Thu Dec 11 06:07:11 2014 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 74D80853; Thu, 11 Dec 2014 06:07:11 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::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 473491CA; Thu, 11 Dec 2014 06:07:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBB67BoT092287; Thu, 11 Dec 2014 06:07:11 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBB67BQ6092286; Thu, 11 Dec 2014 06:07:11 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201412110607.sBB67BQ6092286@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Thu, 11 Dec 2014 06:07:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r275697 - vendor/file/5.21 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Dec 2014 06:07:11 -0000 Author: delphij Date: Thu Dec 11 06:07:10 2014 New Revision: 275697 URL: https://svnweb.freebsd.org/changeset/base/275697 Log: Tag file 5.21 import. Added: vendor/file/5.21/ - copied from r275696, vendor/file/dist/ From owner-svn-src-vendor@FreeBSD.ORG Fri Dec 12 04:10:54 2014 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C57BF20D; Fri, 12 Dec 2014 04:10:54 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::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 AE1668B6; Fri, 12 Dec 2014 04:10:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBC4AsvM080014; Fri, 12 Dec 2014 04:10:54 GMT (envelope-from gshapiro@FreeBSD.org) Received: (from gshapiro@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBC4AoXA079991; Fri, 12 Dec 2014 04:10:50 GMT (envelope-from gshapiro@FreeBSD.org) Message-Id: <201412120410.sBC4AoXA079991@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gshapiro set sender to gshapiro@FreeBSD.org using -f From: Gregory Neil Shapiro Date: Fri, 12 Dec 2014 04:10:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r275719 - in vendor/sendmail/dist: . cf cf/cf cf/feature cf/hack cf/m4 contrib devtools/bin doc/op editmap include/sendmail include/sm libmilter libsm libsmdb src X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Dec 2014 04:10:54 -0000 Author: gshapiro Date: Fri Dec 12 04:10:50 2014 New Revision: 275719 URL: https://svnweb.freebsd.org/changeset/base/275719 Log: Import sendmail 8.15.1 Added: vendor/sendmail/dist/cf/feature/bcc.m4 (contents, props changed) vendor/sendmail/dist/cf/feature/nopercenthack.m4 (contents, props changed) vendor/sendmail/dist/cf/feature/prefixmod.m4 (contents, props changed) vendor/sendmail/dist/cf/hack/xconnect.m4 (contents, props changed) vendor/sendmail/dist/contrib/AuthRealm.p0 (contents, props changed) Deleted: vendor/sendmail/dist/libsm/path.c Modified: vendor/sendmail/dist/FAQ vendor/sendmail/dist/INSTALL vendor/sendmail/dist/KNOWNBUGS vendor/sendmail/dist/README vendor/sendmail/dist/RELEASE_NOTES vendor/sendmail/dist/cf/README vendor/sendmail/dist/cf/cf/generic-bsd4.4.cf vendor/sendmail/dist/cf/cf/generic-hpux10.cf vendor/sendmail/dist/cf/cf/generic-hpux9.cf vendor/sendmail/dist/cf/cf/generic-linux.cf vendor/sendmail/dist/cf/cf/generic-mpeix.cf vendor/sendmail/dist/cf/cf/generic-nextstep3.3.cf vendor/sendmail/dist/cf/cf/generic-osf1.cf vendor/sendmail/dist/cf/cf/generic-solaris.cf vendor/sendmail/dist/cf/cf/generic-sunos4.1.cf vendor/sendmail/dist/cf/cf/generic-ultrix4.cf vendor/sendmail/dist/cf/cf/submit.cf vendor/sendmail/dist/cf/feature/ldap_routing.m4 vendor/sendmail/dist/cf/m4/proto.m4 vendor/sendmail/dist/cf/m4/version.m4 vendor/sendmail/dist/devtools/bin/Build vendor/sendmail/dist/doc/op/op.me vendor/sendmail/dist/doc/op/op.ps vendor/sendmail/dist/editmap/editmap.c vendor/sendmail/dist/include/sendmail/sendmail.h vendor/sendmail/dist/include/sm/bdb.h vendor/sendmail/dist/include/sm/cdefs.h vendor/sendmail/dist/include/sm/conf.h vendor/sendmail/dist/include/sm/errstring.h vendor/sendmail/dist/include/sm/fdset.h vendor/sendmail/dist/libmilter/engine.c vendor/sendmail/dist/libmilter/handler.c vendor/sendmail/dist/libmilter/listener.c vendor/sendmail/dist/libmilter/signal.c vendor/sendmail/dist/libmilter/worker.c vendor/sendmail/dist/libsm/Makefile.m4 vendor/sendmail/dist/libsm/errstring.c vendor/sendmail/dist/libsm/local.h vendor/sendmail/dist/libsm/mbdb.c vendor/sendmail/dist/libsm/refill.c vendor/sendmail/dist/libsm/stdio.c vendor/sendmail/dist/libsm/vfprintf.c vendor/sendmail/dist/libsmdb/smdb.c vendor/sendmail/dist/src/README vendor/sendmail/dist/src/TRACEFLAGS vendor/sendmail/dist/src/TUNING vendor/sendmail/dist/src/bf.c vendor/sendmail/dist/src/collect.c vendor/sendmail/dist/src/conf.c vendor/sendmail/dist/src/daemon.c vendor/sendmail/dist/src/deliver.c vendor/sendmail/dist/src/envelope.c vendor/sendmail/dist/src/err.c vendor/sendmail/dist/src/headers.c vendor/sendmail/dist/src/main.c vendor/sendmail/dist/src/map.c vendor/sendmail/dist/src/mci.c vendor/sendmail/dist/src/milter.c vendor/sendmail/dist/src/parseaddr.c vendor/sendmail/dist/src/queue.c vendor/sendmail/dist/src/readcf.c vendor/sendmail/dist/src/recipient.c vendor/sendmail/dist/src/savemail.c vendor/sendmail/dist/src/sendmail.0 vendor/sendmail/dist/src/sendmail.8 vendor/sendmail/dist/src/sendmail.h vendor/sendmail/dist/src/sfsasl.c vendor/sendmail/dist/src/sm_resolve.c vendor/sendmail/dist/src/srvrsmtp.c vendor/sendmail/dist/src/tls.c vendor/sendmail/dist/src/usersmtp.c vendor/sendmail/dist/src/util.c vendor/sendmail/dist/src/version.c Modified: vendor/sendmail/dist/FAQ ============================================================================== --- vendor/sendmail/dist/FAQ Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/FAQ Fri Dec 12 04:10:50 2014 (r275719) @@ -1,8 +1,4 @@ The FAQ is no longer maintained with the sendmail release. It is available at http://www.sendmail.org/faq/ . -A plain-text version of the questions only, with URLs referring to -the answers, is posted to comp.mail.sendmail on the 10th and 25th -of each month. - -$Revision: 8.24 $, Last updated $Date: 1999-02-07 03:21:03 $ +$Revision: 8.25 $, Last updated $Date: 2014-01-27 12:49:52 $ Modified: vendor/sendmail/dist/INSTALL ============================================================================== --- vendor/sendmail/dist/INSTALL Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/INSTALL Fri Dec 12 04:10:50 2014 (r275719) @@ -28,8 +28,9 @@ sendmail/SECURITY for more installation /etc/mail/submit.cf. This can be done in the cf/cf by using "sh ./Build install-cf". - Please read sendmail/SECURITY before continuing; you have to create a - new user smmsp and a new group smmsp for the default installation. + Please read sendmail/SECURITY before continuing; you may have to create + a new user smmsp and a new group smmsp for the default installation + if you are updating from a really old version. Then install the sendmail binary built in step 3 by cd-ing back to sendmail/ and running "sh ./Build install". Modified: vendor/sendmail/dist/KNOWNBUGS ============================================================================== --- vendor/sendmail/dist/KNOWNBUGS Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/KNOWNBUGS Fri Dec 12 04:10:50 2014 (r275719) @@ -62,9 +62,9 @@ This list is not guaranteed to be comple libmilter and hence the communication fails. This can be avoided by increasing the constant MILTER_CHUNK_SIZE in include/libmilter/mfdef.h and recompiling sendmail, libmilter, and - all (statically linked) milters (or by using an undocumented compile - time option: _FFR_MAXDATASIZE; you have to read the source code in - order to use this properly). + all (statically linked) milters (or by using undocumented compile + time options: _FFR_MAXDATASIZE/_FFR_MDS_NEGOTIATE; you have to + read the source code in order to use these properly). * Sender addresses whose domain part cause a temporary A record lookup failure but have a valid MX record will be temporarily rejected in @@ -102,6 +102,11 @@ Kresolve sequence dnsmx canon Header addresses that have the \231 character (and possibly others in the range \201 - \237) behave in odd and usually unexpected ways. +* AuthRealm for Cyrus SASL may not work as expected. The man page + and the actual usage for sasl_server_new() seem to differ. + Feedback for the "correct" usage is welcome, a patch to match + the description of the man page is in contrib/AuthRealm.p0. + * accept() problem on SVR4. Apparently, the sendmail daemon loop (doing accept()s on the network) @@ -252,7 +257,7 @@ Kresolve sequence dnsmx canon * Race condition for delivery to set-user-ID files - Sendmail will deliver to a fail if the file is owned by the DefaultUser + Sendmail will deliver to a file if the file is owned by the DefaultUser or has the set-user-ID bit set. Unfortunately, some systems clear that bit when a file is modified. Sendmail compensates by resetting the file mode back to it's original settings. Unfortunately, there's still a Modified: vendor/sendmail/dist/README ============================================================================== --- vendor/sendmail/dist/README Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/README Fri Dec 12 04:10:50 2014 (r275719) @@ -211,29 +211,11 @@ There are other files you should read. +--------------+ There are several related RFCs that you may wish to read -- they are -available via anonymous FTP to several sites. For a list of the -primary repositories see: - - http://www.isi.edu/in-notes/rfc-retrieval.txt - -They are also online at: +available from several sites, see + http://www.rfc-editor.org/ http://www.ietf.org/ -They can also be retrieved via electronic mail by sending -email to one of: - - mail-server@nisc.sri.com - Put "send rfcNNN" in message body - nis-info@nis.nsf.net - Put "send RFCnnn.TXT-1" in message body - sendrfc@jvnc.net - Put "RFCnnn" as Subject: line - -For further instructions see: - - http://www.isi.edu/in-notes/rfc-editor/rfc-info - Important RFCs for electronic mail are: RFC821 SMTP protocol Modified: vendor/sendmail/dist/RELEASE_NOTES ============================================================================== --- vendor/sendmail/dist/RELEASE_NOTES Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/RELEASE_NOTES Fri Dec 12 04:10:50 2014 (r275719) @@ -5,6 +5,124 @@ This listing shows the version of the se of the sendmail configuration files, the date of release, and a summary of the changes in that release. +8.15.1/8.15.1 2014/12/06 + SECURITY: Properly set the close-on-exec flag for file descriptors + (except stdin, stdout, and stderr) before executing mailers. + If header rewriting fails due to a temporary map lookup failure, + queue the mail for later retry instead of sending it + without rewriting the header. Note: this is done + while the mail is being sent and hence the transaction + is aborted, which only works for SMTP/LMTP mailers + hence the handling of temporary map failures is + suppressed for other mailers. SMTP/LMTP servers may + complain about aborted transactions when this problem + occurs. + See also "DNS Lookups" in sendmail/TUNING. + Incompatible Change: Use uncompressed IPv6 addresses by default, + i.e., they will not contain "::". For example, + instead of ::1 it will be 0:0:0:0:0:0:0:1. This + permits a zero subnet to have a more specific match, + such as different map entries for IPv6:0:0 vs IPv6:0. + This change requires that configuration data + (including maps, files, classes, custom ruleset, + etc) must use the same format, so make certain such + configuration data is updated before using 8.15. + As a very simple check search for patterns like + 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. If necessary, + the prior format can be retained by compiling with: + APPENDDEF(`conf_sendmail_ENVDEF', `-DIPV6_FULL=0') + in your devtools/Site/site.config.m4 file. + If debugging is turned on (-d0.14) also print the OpenSSL + versions, both build time and run time + (provided STARTTLS is compiled in). + If a connection to the MTA is dropped by the client before its + hostname can be validated, treat it as "may be forged", + so that the unvalidated hostname is not passed to a + milter in xxfi_connect(). + Add a timeout for communication with socket map servers + which can be specified using the -d option. + Add a compile time option HESIOD_ALLOW_NUMERIC_LOGIN to allow + numeric logins even if HESIOD is enabled. + The new option CertFingerprintAlgorithm specifies the finger- + print algorithm (digest) to use for the presented cert. + If the option is not set, md5 is used and the macro + {cert_md5} contains the cert fingerprint. + However, if the option is set, the specified algorithm + (e.g., sha1) is used and the macro {cert_fp} contains + the cert fingerprint. + That is, as long as the option is not set, the behaviour + does not change, but otherwise, {cert_md5} is superseded + by {cert_fp} even if you set CertFingerprintAlgorithm + to md5. + The options ServerSSLOptions and ClientSSLOptions can be used + to set SSL options for the server and client side + respectively. See SSL_CTX_set_options(3) for a list. + Note: this change turns on SSL_OP_NO_SSLv2 and + SSL_OP_NO_TICKET for the client. See doc/op/op.me + for details. + The option CipherList sets the list of ciphers for STARTTLS. + See ciphers(1) for possible values. + Do not log "STARTTLS: internal error: tls_verify_cb: ssl == NULL" + if a CRLFfile is in use (and LogLevel is 14 or higher.) + Store a more specific TLS protocol version in ${tls_version} + instead of a generic one, e.g., TLSv1 instead of + TLSv1/SSLv3. + Properly set {client_port} value on little endian machines. + Patch from Kelsey Cummings of Sonic.net. + Per RFC 3848, indicate in the Received: header whether SSL or + SMTP AUTH was negotiated by setting the protocol clause + to ESMTPS, ESMTPA, or ESMTPSA instead of ESMTP. + If the 'C' flag is listed as TLSSrvOptions the requirement for the + TLS server to have a cert is removed. This only works + under very specific circumstances and should only be used + if the consequences are understood, e.g., clients + may not work with a server using this. + The options ClientCertFile, ClientKeyFile, ServerCertFile, and + ServerKeyFile can take a second file name, which must be + separated from the first with a comma (note: do not use + any spaces) to set up a second cert/key pair. This can + be used to have certs of different types, e.g., RSA + and DSA. + A new map type "arpa" is available to reverse an IP (IPv4 or IPv6) + address. It returns the string for the PTR lookup, but + without trailing {ip6,in-addr}.arpa. + New operation mode 'C' just checks the configuration file, e.g., + sendmail -C new.cf -bC + will perform a basic syntax/consistency check of new.cf. + The mailer flag 'I' is deprecated and will be removed in a + future version. + Allow local (not just TCP) socket connections to the server, e.g., + O DaemonPortOptions=Family=local, Addr=/var/mta/server.sock + can be used. + If the new option MaxQueueAge is set to a value greater than zero, + entries in the queue will be retried during a queue run + only if the individual retry time has been reached which + is doubled for each attempt. The maximum retry time is + limited by the specified value. + New DontBlameSendmail option GroupReadableDefaultAuthInfoFile + to relax requirement for DefaultAuthInfo file. + Reset timeout after receiving a message to appropriate value if + STARTTLS is in use. Based on patch by Kelsey Cummings + of Sonic.net. + Report correct error messages from the LDAP library for a range of + small negative return values covering those used by OpenLDAP. + Fix compilation with Berkeley DB 5.0 and 6.0. Patch from + Allan E Johannesen of Worcester Polytechnic Institute. + CONFIG: FEATURE(`nopercenthack') takes one parameter: reject or + nospecial which describes whether to disallow "%" in the + local part of an address. + DEVTOOLS: Fix regression in auto-detection of libraries when only + shared libraries are available. Problem reported by + Bryan Costales. + LIBMILTER: Mark communication socket as close-on-exec in case + a user's filter starts other applications. + Based on patch from Paul Howarth. + Portability: + SunOS 5.12 has changed the API for sigwait(2) to conform + with XPG7. Based on patch from Roger Faulkner of Oracle. + Deleted Files: + libsm/path.c + 8.14.9/8.14.9 2014/05/21 SECURITY: Properly set the close-on-exec flag for file descriptors (except stdin, stdout, and stderr) before executing mailers. @@ -681,7 +799,7 @@ summary of the changes in that release. LIBMILTER: The "hostname" argument of the xxfi_connect() callback previously was the equivalent of {client_ptr}. However, this did not match the documentation of the function, hence - it has been changed to {client_name}. See doc/op/op.* + it has been changed to {client_name}. See doc/op/op.me about these macros. 8.13.7/8.13.7 2006/06/14 @@ -3509,11 +3627,11 @@ summary of the changes in that release. Add new STARTTLS related options CACERTPath, CACERTFile, ClientCertFile, ClientKeyFile, DHParameters, RandFile, ServerCertFile, and ServerKeyFile. These are documented in - cf/README and doc/op/op.*. + cf/README and doc/op/op.me. New STARTTLS related macros: ${cert_issuer}, ${cert_subject}, ${tls_version}, ${cipher}, ${cipher_bits}, ${verify}, ${server_name}, and ${server_addr}. These are documented - in cf/README and doc/op/op.*. + in cf/README and doc/op/op.me. Add support for the Entropy Gathering Daemon (EGD) for better random data. New DontBlameSendmail option InsufficientEntropy for systems which Modified: vendor/sendmail/dist/cf/README ============================================================================== --- vendor/sendmail/dist/cf/README Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/cf/README Fri Dec 12 04:10:50 2014 (r275719) @@ -397,6 +397,10 @@ SMTP_MAILER_CHARSET [undefined] If defin that ARRIVE from an address that resolves to one of the SMTP mailers and which are converted to MIME will be labeled with this character set. +RELAY_MAILER_CHARSET [undefined] If defined, messages containing 8-bit data + that ARRIVE from an address that resolves to the + relay mailers and which are converted to MIME will + be labeled with this character set. SMTP_MAILER_LL [990] The maximum line length for SMTP mailers (except the relay mailer). RELAY_MAILER_LL [2040] The maximum line length for the relay mailer. @@ -743,6 +747,16 @@ nouucp Don't route UUCP addresses. Thi 2. don't remove "!" from OperatorChars if `reject' is given as parameter. +nopercenthack Don't treat % as routing character. This feature takes one + parameter: + `reject': reject addresses which have % in the local + part unless it originates from a system + that is allowed to relay. + `nospecial': don't do anything special with %. + Warnings: 1. See the notice in the anti-spam section. + 2. Don't remove % from OperatorChars if `reject' is + given as parameter. + nocanonify Don't pass addresses to $[ ... $] for canonification by default, i.e., host/domain names are considered canonical, except for unqualified names, which must not be used in this @@ -2442,17 +2456,19 @@ should only be used for sites which have that they provide a gateway for. Use this FEATURE with caution as it can allow spammers to relay through your server if not setup properly. -NOTICE: It is possible to relay mail through a system which the anti-relay -rules do not prevent: the case of a system that does use FEATURE(`nouucp', -`nospecial') (system A) and relays local messages to a mail hub (e.g., via -LOCAL_RELAY or LUSER_RELAY) (system B). If system B doesn't use -FEATURE(`nouucp') at all, addresses of the form - would be relayed to . -System A doesn't recognize `!' as an address separator and therefore -forwards it to the mail hub which in turns relays it because it came from -a trusted local host. So if a mailserver allows UUCP (bang-format) -addresses, all systems from which it allows relaying should do the same -or reject those addresses. +NOTICE: It is possible to relay mail through a system which the +anti-relay rules do not prevent: the case of a system that does use +FEATURE(`nouucp', `nospecial') / FEATURE(`nopercenthack', `nospecial') +(system A) and relays local messages to a mail hub (e.g., via +LOCAL_RELAY or LUSER_RELAY) (system B). If system B doesn't use the +same feature (nouucp / nopercenthack) at all, addresses of the form + / +would be relayed to . +System A doesn't recognize `!' / `%' as an address separator and +therefore forwards it to the mail hub which in turns relays it +because it came from a trusted local host. So if a mailserver +allows UUCP (bang-format) / %-hack addresses, all systems from which +it allows relaying should do the same or reject those addresses. As of 8.9, sendmail will refuse mail if the MAIL FROM: parameter has an unresolvable domain (i.e., one that DNS, your local name service, @@ -3990,6 +4006,13 @@ confWORK_TIME_FACTOR RetryFactor [90000] confQUEUE_SORT_ORDER QueueSortOrder [Priority] Queue sort algorithm: Priority, Host, Filename, Random, Modification, or Time. +confMAX_QUEUE_AGE MaxQueueAge [undefined] If set to a value greater + than zero, entries in the queue + will be retried during a queue run + only if the individual retry time + has been reached which is doubled + for each attempt. The maximum retry + time is limited by the specified value. confMIN_QUEUE_AGE MinQueueAge [0] The minimum amount of time a job must sit in the queue between queue runs. This allows you to set the @@ -4208,7 +4231,7 @@ confAUTH_MECHANISMS AuthMechanisms [GSSA confAUTH_REALM AuthRealm [undefined] The authentication realm that is passed to the Cyrus SASL library. If no realm is specified, - $j is used. + $j is used. See KNOWNBUGS. confDEF_AUTH_INFO DefaultAuthInfo [undefined] Name of file that contains authentication information for outgoing connections. This file must @@ -4241,6 +4264,14 @@ confTLS_SRV_OPTIONS TLSSrvOptions If thi verification is performed, i.e., the server doesn't ask for a certificate. +confSERVER_SSL_OPTIONS ServerSSLOptions [undefined] SSL related + options for server side. See + SSL_CTX_set_options(3) for a list. +confCLIENT_SSL_OPTIONS ClientSSLOptions [undefined] SSL related + options for client side. See + SSL_CTX_set_options(3) for a list. +confCIPHER_LIST CipherList [undefined] Cipher list for TLS. + See ciphers(1) for possible values. confLDAP_DEFAULT_SPEC LDAPDefaultSpec [undefined] Default map specification for LDAP maps. The value should only contain LDAP @@ -4281,6 +4312,10 @@ confRAND_FILE RandFile [undefined] File requires this option if the compile flag HASURANDOM is not set (see sendmail/README). +confCERT_FINGERPRINT_ALGORITHM CertFingerprintAlgorithm + [undefined] The fingerprint algorithm + (digest) to use for the presented + cert. confNICE_QUEUE_RUN NiceQueueRun [undefined] If set, the priority of queue runners is set the given value (nice(3)). Modified: vendor/sendmail/dist/cf/cf/generic-bsd4.4.cf ============================================================================== --- vendor/sendmail/dist/cf/cf/generic-bsd4.4.cf Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/cf/cf/generic-bsd4.4.cf Fri Dec 12 04:10:50 2014 (r275719) @@ -16,8 +16,8 @@ ##### ##### SENDMAIL CONFIGURATION FILE ##### -##### built by ca@lab.smi.sendmail.com on Tue May 20 12:12:51 PDT 2014 -##### in /home/ca/sm8.git/sendmail/OpenSource/sendmail-8.14.9/cf/cf +##### built by ca@sandman.dev-lab.sendmail.com on Tue Dec 2 16:21:20 PST 2014 +##### in /x/ca/sm8.git/sendmail/OpenSource/sendmail-8.15.1/cf/cf ##### using ../ as configuration include directory ##### ###################################################################### @@ -122,7 +122,7 @@ DnMAILER-DAEMON CPREDIRECT # Configuration version number -DZ8.14.9 +DZ8.15.1 ############### @@ -259,6 +259,9 @@ O PrivacyOptions=authwarnings # minimum time in queue before retry #O MinQueueAge=30m +# maximum time in queue before retry (if > 0; only for exponential delay) +#O MaxQueueAge + # how many jobs can you process in the queue? #O MaxQueueRunSize=0 @@ -509,6 +512,12 @@ O MaxHeadersLength=32768 # SMTP STARTTLS server options #O TLSSrvOptions +# SSL cipherlist +#O CipherList +# server side SSL options +#O ServerSSLOptions +# client side SSL options +#O ClientSSLOptions # Input mail filters #O InputMailFilters @@ -532,6 +541,8 @@ O MaxHeadersLength=32768 #O DHParameters # Random data source (required for systems without /dev/urandom under OpenSSL) #O RandFile +# fingerprint algorithm (digest) to use for the presented cert +#O CertFingerprintAlgorithm # Maximum number of "useless" commands before slowing down #O MaxNOOPCommands=20 @@ -539,6 +550,8 @@ O MaxHeadersLength=32768 # Name to use for EHLO (defaults to $j) #O HeloName + + ############################ # QUEUE GROUP DEFINITIONS # ############################ @@ -651,6 +664,7 @@ R$* % $* $1 @ $2 First make them all R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last. R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish + # else we must be a local name R$* $@ $>Canonify2 $1 @@ -783,6 +797,7 @@ R$* $=O $* < @ *LOCAL* > $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ... R$* < @ *LOCAL* > $: $1 + # # Parse1 -- the bottom half of ruleset 0. # @@ -820,6 +835,8 @@ R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ R$=L $#local $: @ $1 special local names R$+ $#local $: $1 regular local names + + ########################################################################### ### Ruleset 5 -- special rewriting after aliases have been expanded ### ########################################################################### Modified: vendor/sendmail/dist/cf/cf/generic-hpux10.cf ============================================================================== --- vendor/sendmail/dist/cf/cf/generic-hpux10.cf Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/cf/cf/generic-hpux10.cf Fri Dec 12 04:10:50 2014 (r275719) @@ -16,8 +16,8 @@ ##### ##### SENDMAIL CONFIGURATION FILE ##### -##### built by ca@lab.smi.sendmail.com on Tue May 20 12:12:51 PDT 2014 -##### in /home/ca/sm8.git/sendmail/OpenSource/sendmail-8.14.9/cf/cf +##### built by ca@sandman.dev-lab.sendmail.com on Tue Dec 2 16:21:20 PST 2014 +##### in /x/ca/sm8.git/sendmail/OpenSource/sendmail-8.15.1/cf/cf ##### using ../ as configuration include directory ##### ###################################################################### @@ -123,7 +123,7 @@ DnMAILER-DAEMON CPREDIRECT # Configuration version number -DZ8.14.9 +DZ8.15.1 ############### @@ -260,6 +260,9 @@ O PrivacyOptions=authwarnings # minimum time in queue before retry #O MinQueueAge=30m +# maximum time in queue before retry (if > 0; only for exponential delay) +#O MaxQueueAge + # how many jobs can you process in the queue? #O MaxQueueRunSize=0 @@ -510,6 +513,12 @@ O MaxHeadersLength=32768 # SMTP STARTTLS server options #O TLSSrvOptions +# SSL cipherlist +#O CipherList +# server side SSL options +#O ServerSSLOptions +# client side SSL options +#O ClientSSLOptions # Input mail filters #O InputMailFilters @@ -533,6 +542,8 @@ O MaxHeadersLength=32768 #O DHParameters # Random data source (required for systems without /dev/urandom under OpenSSL) #O RandFile +# fingerprint algorithm (digest) to use for the presented cert +#O CertFingerprintAlgorithm # Maximum number of "useless" commands before slowing down #O MaxNOOPCommands=20 @@ -540,6 +551,8 @@ O MaxHeadersLength=32768 # Name to use for EHLO (defaults to $j) #O HeloName + + ############################ # QUEUE GROUP DEFINITIONS # ############################ @@ -652,6 +665,7 @@ R$* % $* $1 @ $2 First make them all R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last. R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish + # else we must be a local name R$* $@ $>Canonify2 $1 @@ -784,6 +798,7 @@ R$* $=O $* < @ *LOCAL* > $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ... R$* < @ *LOCAL* > $: $1 + # # Parse1 -- the bottom half of ruleset 0. # @@ -821,6 +836,8 @@ R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ R$=L $#local $: @ $1 special local names R$+ $#local $: $1 regular local names + + ########################################################################### ### Ruleset 5 -- special rewriting after aliases have been expanded ### ########################################################################### Modified: vendor/sendmail/dist/cf/cf/generic-hpux9.cf ============================================================================== --- vendor/sendmail/dist/cf/cf/generic-hpux9.cf Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/cf/cf/generic-hpux9.cf Fri Dec 12 04:10:50 2014 (r275719) @@ -16,8 +16,8 @@ ##### ##### SENDMAIL CONFIGURATION FILE ##### -##### built by ca@lab.smi.sendmail.com on Tue May 20 12:12:51 PDT 2014 -##### in /home/ca/sm8.git/sendmail/OpenSource/sendmail-8.14.9/cf/cf +##### built by ca@sandman.dev-lab.sendmail.com on Tue Dec 2 16:21:20 PST 2014 +##### in /x/ca/sm8.git/sendmail/OpenSource/sendmail-8.15.1/cf/cf ##### using ../ as configuration include directory ##### ###################################################################### @@ -123,7 +123,7 @@ DnMAILER-DAEMON CPREDIRECT # Configuration version number -DZ8.14.9 +DZ8.15.1 ############### @@ -260,6 +260,9 @@ O PrivacyOptions=authwarnings # minimum time in queue before retry #O MinQueueAge=30m +# maximum time in queue before retry (if > 0; only for exponential delay) +#O MaxQueueAge + # how many jobs can you process in the queue? #O MaxQueueRunSize=0 @@ -510,6 +513,12 @@ O MaxHeadersLength=32768 # SMTP STARTTLS server options #O TLSSrvOptions +# SSL cipherlist +#O CipherList +# server side SSL options +#O ServerSSLOptions +# client side SSL options +#O ClientSSLOptions # Input mail filters #O InputMailFilters @@ -533,6 +542,8 @@ O MaxHeadersLength=32768 #O DHParameters # Random data source (required for systems without /dev/urandom under OpenSSL) #O RandFile +# fingerprint algorithm (digest) to use for the presented cert +#O CertFingerprintAlgorithm # Maximum number of "useless" commands before slowing down #O MaxNOOPCommands=20 @@ -540,6 +551,8 @@ O MaxHeadersLength=32768 # Name to use for EHLO (defaults to $j) #O HeloName + + ############################ # QUEUE GROUP DEFINITIONS # ############################ @@ -652,6 +665,7 @@ R$* % $* $1 @ $2 First make them all R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last. R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish + # else we must be a local name R$* $@ $>Canonify2 $1 @@ -784,6 +798,7 @@ R$* $=O $* < @ *LOCAL* > $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ... R$* < @ *LOCAL* > $: $1 + # # Parse1 -- the bottom half of ruleset 0. # @@ -821,6 +836,8 @@ R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ R$=L $#local $: @ $1 special local names R$+ $#local $: $1 regular local names + + ########################################################################### ### Ruleset 5 -- special rewriting after aliases have been expanded ### ########################################################################### Modified: vendor/sendmail/dist/cf/cf/generic-linux.cf ============================================================================== --- vendor/sendmail/dist/cf/cf/generic-linux.cf Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/cf/cf/generic-linux.cf Fri Dec 12 04:10:50 2014 (r275719) @@ -16,8 +16,8 @@ ##### ##### SENDMAIL CONFIGURATION FILE ##### -##### built by ca@lab.smi.sendmail.com on Tue May 20 12:12:51 PDT 2014 -##### in /home/ca/sm8.git/sendmail/OpenSource/sendmail-8.14.9/cf/cf +##### built by ca@sandman.dev-lab.sendmail.com on Tue Dec 2 16:21:20 PST 2014 +##### in /x/ca/sm8.git/sendmail/OpenSource/sendmail-8.15.1/cf/cf ##### using ../ as configuration include directory ##### ###################################################################### @@ -127,7 +127,7 @@ DnMAILER-DAEMON CPREDIRECT # Configuration version number -DZ8.14.9 +DZ8.15.1 ############### @@ -264,6 +264,9 @@ O PrivacyOptions=authwarnings # minimum time in queue before retry #O MinQueueAge=30m +# maximum time in queue before retry (if > 0; only for exponential delay) +#O MaxQueueAge + # how many jobs can you process in the queue? #O MaxQueueRunSize=0 @@ -514,6 +517,12 @@ O MaxHeadersLength=32768 # SMTP STARTTLS server options #O TLSSrvOptions +# SSL cipherlist +#O CipherList +# server side SSL options +#O ServerSSLOptions +# client side SSL options +#O ClientSSLOptions # Input mail filters #O InputMailFilters @@ -537,6 +546,8 @@ O MaxHeadersLength=32768 #O DHParameters # Random data source (required for systems without /dev/urandom under OpenSSL) #O RandFile +# fingerprint algorithm (digest) to use for the presented cert +#O CertFingerprintAlgorithm # Maximum number of "useless" commands before slowing down #O MaxNOOPCommands=20 @@ -544,6 +555,8 @@ O MaxHeadersLength=32768 # Name to use for EHLO (defaults to $j) #O HeloName + + ############################ # QUEUE GROUP DEFINITIONS # ############################ @@ -656,6 +669,7 @@ R$* % $* $1 @ $2 First make them all R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last. R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish + # else we must be a local name R$* $@ $>Canonify2 $1 @@ -788,6 +802,7 @@ R$* $=O $* < @ *LOCAL* > $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ... R$* < @ *LOCAL* > $: $1 + # # Parse1 -- the bottom half of ruleset 0. # @@ -825,6 +840,8 @@ R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ R$=L $#local $: @ $1 special local names R$+ $#local $: $1 regular local names + + ########################################################################### ### Ruleset 5 -- special rewriting after aliases have been expanded ### ########################################################################### Modified: vendor/sendmail/dist/cf/cf/generic-mpeix.cf ============================================================================== --- vendor/sendmail/dist/cf/cf/generic-mpeix.cf Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/cf/cf/generic-mpeix.cf Fri Dec 12 04:10:50 2014 (r275719) @@ -16,8 +16,8 @@ ##### ##### SENDMAIL CONFIGURATION FILE ##### -##### built by ca@lab.smi.sendmail.com on Tue May 20 12:12:51 PDT 2014 -##### in /home/ca/sm8.git/sendmail/OpenSource/sendmail-8.14.9/cf/cf +##### built by ca@sandman.dev-lab.sendmail.com on Tue Dec 2 16:21:20 PST 2014 +##### in /x/ca/sm8.git/sendmail/OpenSource/sendmail-8.15.1/cf/cf ##### using ../ as configuration include directory ##### ###################################################################### @@ -123,7 +123,7 @@ DnMAILER-DAEMON CPREDIRECT # Configuration version number -DZ8.14.9 +DZ8.15.1 ############### @@ -260,6 +260,9 @@ O PrivacyOptions=authwarnings # minimum time in queue before retry #O MinQueueAge=30m +# maximum time in queue before retry (if > 0; only for exponential delay) +#O MaxQueueAge + # how many jobs can you process in the queue? #O MaxQueueRunSize=0 @@ -510,6 +513,12 @@ O MaxHeadersLength=32768 # SMTP STARTTLS server options #O TLSSrvOptions +# SSL cipherlist +#O CipherList +# server side SSL options +#O ServerSSLOptions +# client side SSL options +#O ClientSSLOptions # Input mail filters #O InputMailFilters @@ -533,6 +542,8 @@ O MaxHeadersLength=32768 #O DHParameters # Random data source (required for systems without /dev/urandom under OpenSSL) #O RandFile +# fingerprint algorithm (digest) to use for the presented cert +#O CertFingerprintAlgorithm # Maximum number of "useless" commands before slowing down #O MaxNOOPCommands=20 @@ -540,6 +551,8 @@ O MaxHeadersLength=32768 # Name to use for EHLO (defaults to $j) #O HeloName + + ############################ # QUEUE GROUP DEFINITIONS # ############################ @@ -652,6 +665,7 @@ R$* % $* $1 @ $2 First make them all R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last. R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish + # else we must be a local name R$* $@ $>Canonify2 $1 @@ -784,6 +798,7 @@ R$* $=O $* < @ *LOCAL* > $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ... R$* < @ *LOCAL* > $: $1 + # # Parse1 -- the bottom half of ruleset 0. # @@ -821,6 +836,8 @@ R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ R$=L $#local $: @ $1 special local names R$+ $#local $: $1 regular local names + + ########################################################################### ### Ruleset 5 -- special rewriting after aliases have been expanded ### ########################################################################### Modified: vendor/sendmail/dist/cf/cf/generic-nextstep3.3.cf ============================================================================== --- vendor/sendmail/dist/cf/cf/generic-nextstep3.3.cf Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/cf/cf/generic-nextstep3.3.cf Fri Dec 12 04:10:50 2014 (r275719) @@ -16,8 +16,8 @@ ##### ##### SENDMAIL CONFIGURATION FILE ##### -##### built by ca@lab.smi.sendmail.com on Tue May 20 12:12:51 PDT 2014 -##### in /home/ca/sm8.git/sendmail/OpenSource/sendmail-8.14.9/cf/cf +##### built by ca@sandman.dev-lab.sendmail.com on Tue Dec 2 16:21:20 PST 2014 +##### in /x/ca/sm8.git/sendmail/OpenSource/sendmail-8.15.1/cf/cf ##### using ../ as configuration include directory ##### ###################################################################### @@ -122,7 +122,7 @@ DnMAILER-DAEMON CPREDIRECT # Configuration version number -DZ8.14.9 +DZ8.15.1 ############### @@ -259,6 +259,9 @@ O PrivacyOptions=authwarnings # minimum time in queue before retry #O MinQueueAge=30m +# maximum time in queue before retry (if > 0; only for exponential delay) +#O MaxQueueAge + # how many jobs can you process in the queue? #O MaxQueueRunSize=0 @@ -509,6 +512,12 @@ O MaxHeadersLength=32768 # SMTP STARTTLS server options #O TLSSrvOptions +# SSL cipherlist +#O CipherList +# server side SSL options +#O ServerSSLOptions +# client side SSL options +#O ClientSSLOptions # Input mail filters #O InputMailFilters @@ -532,6 +541,8 @@ O MaxHeadersLength=32768 #O DHParameters # Random data source (required for systems without /dev/urandom under OpenSSL) #O RandFile +# fingerprint algorithm (digest) to use for the presented cert +#O CertFingerprintAlgorithm # Maximum number of "useless" commands before slowing down #O MaxNOOPCommands=20 @@ -539,6 +550,8 @@ O MaxHeadersLength=32768 # Name to use for EHLO (defaults to $j) #O HeloName + + ############################ # QUEUE GROUP DEFINITIONS # ############################ @@ -651,6 +664,7 @@ R$* % $* $1 @ $2 First make them all R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last. R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish + # else we must be a local name R$* $@ $>Canonify2 $1 @@ -783,6 +797,7 @@ R$* $=O $* < @ *LOCAL* > $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ... R$* < @ *LOCAL* > $: $1 + # # Parse1 -- the bottom half of ruleset 0. # @@ -820,6 +835,8 @@ R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ R$=L $#local $: @ $1 special local names R$+ $#local $: $1 regular local names + + ########################################################################### ### Ruleset 5 -- special rewriting after aliases have been expanded ### ########################################################################### Modified: vendor/sendmail/dist/cf/cf/generic-osf1.cf ============================================================================== --- vendor/sendmail/dist/cf/cf/generic-osf1.cf Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/cf/cf/generic-osf1.cf Fri Dec 12 04:10:50 2014 (r275719) @@ -16,8 +16,8 @@ ##### ##### SENDMAIL CONFIGURATION FILE ##### -##### built by ca@lab.smi.sendmail.com on Tue May 20 12:12:52 PDT 2014 -##### in /home/ca/sm8.git/sendmail/OpenSource/sendmail-8.14.9/cf/cf +##### built by ca@sandman.dev-lab.sendmail.com on Tue Dec 2 16:21:20 PST 2014 +##### in /x/ca/sm8.git/sendmail/OpenSource/sendmail-8.15.1/cf/cf ##### using ../ as configuration include directory ##### ###################################################################### @@ -123,7 +123,7 @@ DnMAILER-DAEMON CPREDIRECT # Configuration version number -DZ8.14.9 +DZ8.15.1 ############### @@ -260,6 +260,9 @@ O PrivacyOptions=authwarnings # minimum time in queue before retry #O MinQueueAge=30m +# maximum time in queue before retry (if > 0; only for exponential delay) +#O MaxQueueAge + # how many jobs can you process in the queue? #O MaxQueueRunSize=0 @@ -510,6 +513,12 @@ O MaxHeadersLength=32768 # SMTP STARTTLS server options #O TLSSrvOptions +# SSL cipherlist +#O CipherList +# server side SSL options +#O ServerSSLOptions +# client side SSL options +#O ClientSSLOptions # Input mail filters #O InputMailFilters @@ -533,6 +542,8 @@ O MaxHeadersLength=32768 #O DHParameters # Random data source (required for systems without /dev/urandom under OpenSSL) #O RandFile +# fingerprint algorithm (digest) to use for the presented cert +#O CertFingerprintAlgorithm # Maximum number of "useless" commands before slowing down #O MaxNOOPCommands=20 @@ -540,6 +551,8 @@ O MaxHeadersLength=32768 # Name to use for EHLO (defaults to $j) #O HeloName + + ############################ # QUEUE GROUP DEFINITIONS # ############################ @@ -652,6 +665,7 @@ R$* % $* $1 @ $2 First make them all R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last. R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish + # else we must be a local name R$* $@ $>Canonify2 $1 @@ -784,6 +798,7 @@ R$* $=O $* < @ *LOCAL* > $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ... R$* < @ *LOCAL* > $: $1 + # # Parse1 -- the bottom half of ruleset 0. # @@ -821,6 +836,8 @@ R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ R$=L $#local $: @ $1 special local names R$+ $#local $: $1 regular local names + + ########################################################################### ### Ruleset 5 -- special rewriting after aliases have been expanded ### ########################################################################### Modified: vendor/sendmail/dist/cf/cf/generic-solaris.cf ============================================================================== --- vendor/sendmail/dist/cf/cf/generic-solaris.cf Fri Dec 12 03:58:51 2014 (r275718) +++ vendor/sendmail/dist/cf/cf/generic-solaris.cf Fri Dec 12 04:10:50 2014 (r275719) @@ -16,8 +16,8 @@ ##### ##### SENDMAIL CONFIGURATION FILE ##### -##### built by ca@lab.smi.sendmail.com on Tue May 20 12:12:52 PDT 2014 -##### in /home/ca/sm8.git/sendmail/OpenSource/sendmail-8.14.9/cf/cf +##### built by ca@sandman.dev-lab.sendmail.com on Tue Dec 2 16:21:20 PST 2014 +##### in /x/ca/sm8.git/sendmail/OpenSource/sendmail-8.15.1/cf/cf ##### using ../ as configuration include directory ##### ###################################################################### @@ -122,7 +122,7 @@ DnMAILER-DAEMON CPREDIRECT # Configuration version number -DZ8.14.9 +DZ8.15.1 ############### @@ -259,6 +259,9 @@ O PrivacyOptions=authwarnings # minimum time in queue before retry #O MinQueueAge=30m +# maximum time in queue before retry (if > 0; only for exponential delay) +#O MaxQueueAge *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@FreeBSD.ORG Fri Dec 12 04:12:19 2014 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 255D634E; Fri, 12 Dec 2014 04:12:19 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::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 EBE0A8C8; Fri, 12 Dec 2014 04:12:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBC4CIOS083226; Fri, 12 Dec 2014 04:12:18 GMT (envelope-from gshapiro@FreeBSD.org) Received: (from gshapiro@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBC4CIjT083225; Fri, 12 Dec 2014 04:12:18 GMT (envelope-from gshapiro@FreeBSD.org) Message-Id: <201412120412.sBC4CIjT083225@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gshapiro set sender to gshapiro@FreeBSD.org using -f From: Gregory Neil Shapiro Date: Fri, 12 Dec 2014 04:12:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r275720 - vendor/sendmail/8.15.1 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Dec 2014 04:12:19 -0000 Author: gshapiro Date: Fri Dec 12 04:12:18 2014 New Revision: 275720 URL: https://svnweb.freebsd.org/changeset/base/275720 Log: Tag sendmail 8.15.1 Added: vendor/sendmail/8.15.1/ - copied from r275719, vendor/sendmail/dist/