Module Name: src Committed By: fox Date: Mon Mar 9 15:37:46 UTC 2020
Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: dmu_tx.c spa.c Log Message: external/cddl/osnet: Fix possible signed integer overflow Detected by UBSan and fixed upstream Cherry-pick: >From 05852b3467b44cdf88541ec67624cd1f5f2ded1d Mon Sep 17 00:00:00 2001 From: luozhengzheng <luo.zhengzh...@zte.com.cn> Date: Fri, 14 Oct 2016 05:25:05 +0800 Subject: [PATCH] Fix coverity defects: CID 147571, 147574 CID 147571: Unintentional integer overflow (OVERFLOW_BEFORE_WIDEN) CID 147574: Unintentional integer overflow (OVERFLOW_BEFORE_WIDEN) Reviewed-by: Brian Behlendorf <behlendo...@llnl.gov> Signed-off-by: luozhengzheng <luo.zhengzh...@zte.com.cn> Closes #5268 Reviewed by: kamil@ To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c cvs rdiff -u -r1.10 -r1.11 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.5 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c:1.4 Fri Jun 21 10:59:50 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/dmu_tx.c Mon Mar 9 15:37:46 2020 @@ -412,7 +412,7 @@ dmu_tx_count_dnode(dmu_tx_hold_t *txh) dnode_t *dn = txh->txh_dnode; dnode_t *mdn = DMU_META_DNODE(txh->txh_tx->tx_objset); uint64_t space = mdn->dn_datablksz + - ((mdn->dn_nlevels-1) << mdn->dn_indblkshift); + ((uint64_t)(mdn->dn_nlevels-1) << mdn->dn_indblkshift); if (dn && dn->dn_dbuf->db_blkptr && dsl_dataset_block_freeable(dn->dn_objset->os_dsl_dataset, Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.10 src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.11 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c:1.10 Tue Jul 23 07:46:22 2019 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/spa.c Mon Mar 9 15:37:46 2020 @@ -6293,7 +6293,7 @@ spa_async_tasks_pending(spa_t *spa) } else { config_task_suspended = (gethrtime() - spa->spa_ccw_fail_time) < - (zfs_ccw_retry_interval * NANOSEC); + ((hrtime_t)zfs_ccw_retry_interval * NANOSEC); } return (non_config_tasks || (config_task && !config_task_suspended));