]> granicus.if.org Git - zfs/commitdiff
Fix coverity defects: CID 147650, 147649, 147647, 147646
authorcao <cao.xuewen@zte.com.cn>
Sun, 25 Sep 2016 22:08:28 +0000 (06:08 +0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Sun, 25 Sep 2016 22:08:28 +0000 (15:08 -0700)
coverity scan CID:147650, Type:copy into fixed size buffer.
coverity scan CID:147649, Type:copy into fixed size buffer.
coverity scan CID:147647, Type:copy into fixed size buffer.
coverity scan CID:147646, Type:copy into fixed size buffer.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: cao.xuewen <cao.xuewen@zte.com.cn>
Closes #5161

module/zfs/dsl_dir.c
module/zfs/zap_micro.c
module/zfs/zfs_ioctl.c

index ae67b362ee8a80edc11c9470aa07cbdac921e385..59d3822147be61115ae64cbf712aac8d8973f791 100644 (file)
@@ -203,7 +203,8 @@ dsl_dir_hold_obj(dsl_pool_t *dp, uint64_t ddobj,
                                    sizeof (foundobj), 1, &foundobj);
                                ASSERT(err || foundobj == ddobj);
 #endif
-                               (void) strcpy(dd->dd_myname, tail);
+                               (void) strlcpy(dd->dd_myname, tail,
+                                   sizeof (dd->dd_myname));
                        } else {
                                err = zap_value_search(dp->dp_meta_objset,
                                    dsl_dir_phys(dd->dd_parent)->
index df952146b6c2a922b0a3a49fd41b0f72a2bc265e..a15e22c5bec5f38514e9158dcd663bd2eeff955c 100644 (file)
@@ -1110,7 +1110,8 @@ again:
                if (mze->mze_name[0] == 0) {
                        mze->mze_value = value;
                        mze->mze_cd = cd;
-                       (void) strcpy(mze->mze_name, zn->zn_key_orig);
+                       (void) strlcpy(mze->mze_name, zn->zn_key_orig,
+                           sizeof (mze->mze_name));
                        zap->zap_m.zap_num_entries++;
                        zap->zap_m.zap_alloc_next = i+1;
                        if (zap->zap_m.zap_alloc_next ==
index 0385bfcbb59b01e742c32c3d5caa0023f3df794e..64f630108089f0324ad5aa819fb9b59902bde47a 100644 (file)
@@ -3928,12 +3928,13 @@ zfs_check_clearable(char *dataset, nvlist_t *props, nvlist_t **errlist)
        VERIFY(nvlist_alloc(&errors, NV_UNIQUE_NAME, KM_SLEEP) == 0);
 
        zc = kmem_alloc(sizeof (zfs_cmd_t), KM_SLEEP);
-       (void) strcpy(zc->zc_name, dataset);
+       (void) strlcpy(zc->zc_name, dataset, sizeof (zc->zc_name));
        pair = nvlist_next_nvpair(props, NULL);
        while (pair != NULL) {
                next_pair = nvlist_next_nvpair(props, pair);
 
-               (void) strcpy(zc->zc_value, nvpair_name(pair));
+               (void) strlcpy(zc->zc_value, nvpair_name(pair),
+                   sizeof (zc->zc_value));
                if ((err = zfs_check_settable(dataset, pair, CRED())) != 0 ||
                    (err = zfs_secpolicy_inherit_prop(zc, NULL, CRED())) != 0) {
                        VERIFY(nvlist_remove_nvpair(props, pair) == 0);
@@ -4951,7 +4952,8 @@ zfs_ioc_tmp_snapshot(zfs_cmd_t *zc)
        error = dsl_dataset_snapshot_tmp(zc->zc_name, snap_name, minor,
            hold_name);
        if (error == 0)
-               (void) strcpy(zc->zc_value, snap_name);
+               (void) strlcpy(zc->zc_value, snap_name,
+                   sizeof (zc->zc_value));
        strfree(snap_name);
        strfree(hold_name);
        zfs_onexit_fd_rele(zc->zc_cleanup_fd);