mirror_zfs/include/sys
Jan Engelhardt aca19e063b Do not attempt access beyond the declared end of the dn_blkptr array
This loop in dmu_objset_write_ready():

	for (i = 0; i < dnp->dn_nblkptr; i++)
		bp->blk_fill += dnp->dn_blkptr[i].blk_fill;

invokes _undefined behavior_ for the (common) case of dn_nblkptr=3,
therefore, the compiler is free to do whatever it wants (such as
optimizing it away, or otherwise messing up your expections).

The fix is to be honest about the array size.

Signed-off-by: Tim Chase <tim@chase2k.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #2511
Closes #2010
2014-07-22 09:55:37 -07:00
..
fm Add automatic hot spare functionality 2014-04-02 13:10:08 -07:00
fs Check the dataset type more rigorously when fetching properties. 2014-05-06 10:41:46 -07:00
arc.h Split "data_size" into "meta" and "data" 2014-02-21 16:10:49 -08:00
avl_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
avl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bplist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bpobj.h Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
bptree.h Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
dbuf.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
ddt.h Add ddt, ddt_entry, and l2arc_hdr caches 2014-01-07 10:33:11 -08:00
dmu_impl.h Illumos #3834 2013-11-05 12:15:00 -08:00
dmu_objset.h Illumos #3875 2013-11-04 11:27:41 -08:00
dmu_send.h Illumos #3834 2013-11-05 12:15:00 -08:00
dmu_traverse.h Illumos #3498 panic in arc_read() 2013-07-02 13:34:31 -07:00
dmu_tx.h dmu_tx kstat cleanup 2014-03-04 12:22:24 -08:00
dmu_zfetch.h Fix zstream_t incorrect type 2013-12-10 10:09:27 -08:00
dmu.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
dnode.h Do not attempt access beyond the declared end of the dn_blkptr array 2014-07-22 09:55:37 -07:00
dsl_dataset.h Illumos #3996 2013-11-05 12:23:11 -08:00
dsl_deadlist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_deleg.h Illumos #2882, #2883, #2900 2013-09-04 15:49:00 -07:00
dsl_destroy.h Illumos #3888 2013-11-04 11:18:14 -08:00
dsl_dir.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
dsl_pool.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
dsl_prop.h Illumos #3464 2013-09-04 16:01:24 -07:00
dsl_scan.h Add erratum for issue #2094 2014-02-21 12:10:40 -08:00
dsl_synctask.h Illumos #3464 2013-09-04 16:01:24 -07:00
dsl_userhold.h Illumos #3740 2013-11-04 11:17:48 -08:00
efi_partition.h Move partition scanning from userspace to module. 2012-07-17 09:17:31 -07:00
Makefile.am Illumos #4101, #4102, #4103, #4105, #4106 2014-07-22 09:39:16 -07:00
metaslab_impl.h Illumos #4101, #4102, #4103, #4105, #4106 2014-07-22 09:39:16 -07:00
metaslab.h Illumos #4101, #4102, #4103, #4105, #4106 2014-07-22 09:39:16 -07:00
nvpair_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
nvpair.h Illumos #3464 2013-09-04 16:01:24 -07:00
range_tree.h Illumos #4101, #4102, #4103, #4105, #4106 2014-07-22 09:39:16 -07:00
refcount.h Illumos #3464 2013-09-04 16:01:24 -07:00
rrwlock.h Illumos #3464 2013-09-04 16:01:24 -07:00
sa_impl.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
sa.h Add sa_spill_rele() interface 2012-03-07 16:28:00 -08:00
spa_boot.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
spa_impl.h Add generic errata infrastructure 2014-02-21 12:10:40 -08:00
spa.h replace nreserved with ndirty in txgs kstat 2014-03-04 12:22:24 -08:00
space_map.h Illumos #4101, #4102, #4103, #4105, #4106 2014-07-22 09:39:16 -07:00
space_reftree.h Illumos #4101, #4102, #4103, #4105, #4106 2014-07-22 09:39:16 -07:00
txg_impl.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
txg.h Illumos #4045 write throttle & i/o scheduler performance work 2013-12-06 09:32:43 -08:00
u8_textprep_data.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
u8_textprep.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uio_impl.h Add basic uio support 2011-02-10 09:21:43 -08:00
unique.h Illumos #3742 2013-11-04 10:55:25 -08:00
uuid.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
vdev_disk.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
vdev_file.h Use a dedicated taskq for vdev_file 2014-05-14 16:20:21 -07:00
vdev_impl.h Illumos #4101, #4102, #4103, #4105, #4106 2014-07-22 09:39:16 -07:00
vdev.h 3246 ZFS I/O deadman thread 2013-05-01 17:05:52 -07:00
xvattr.h Add xvattr support 2011-03-02 11:43:50 -08:00
zap_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zap_leaf.h Illumos #3742 2013-11-04 10:55:25 -08:00
zap.h Illumos #3742 2013-11-04 10:55:25 -08:00
zfeature.h Illumos #4101, #4102, #4103, #4105, #4106 2014-07-22 09:39:16 -07:00
zfs_acl.h Illumos #3742 2013-11-04 10:55:25 -08:00
zfs_context.h libspl: Implement LWP rwlock interface 2014-05-01 15:53:52 -07:00
zfs_ctldir.h Linux 3.7 compat, schedule_delayed_work() 2012-12-12 10:47:05 -08:00
zfs_debug.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_delay.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_dir.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_fuid.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_ioctl.h Allow for lock-free reading zfsdev_state_list. 2014-05-19 11:45:11 -07:00
zfs_onexit.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_rlock.h Illumos #3742 2013-11-04 10:55:25 -08:00
zfs_sa.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zfs_stat.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_vfsops.h Implement relatime. 2014-01-29 15:50:44 -08:00
zfs_vnops.h Linux 3.11 compat: fops->iterate() 2013-08-15 16:19:07 -07:00
zfs_znode.h Fix zil_commit() NULL dereference 2014-07-17 15:15:07 -07:00
zil_impl.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zil.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zio_checksum.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zio_compress.h Illumos #3742 2013-11-04 10:55:25 -08:00
zio_impl.h Illumos #3836 2013-11-05 12:14:56 -08:00
zio.h Revert changes to zbookmark_t 2014-02-21 12:10:39 -08:00
zpl.h cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
zrlock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zvol.h Remove ZFC_IOC_*_MINOR ioctl()s 2013-12-16 09:15:57 -08:00