diff --git a/lib/lvol/lvol.c b/lib/lvol/lvol.c index c71bb7ca8..88cf4ef33 100644 --- a/lib/lvol/lvol.c +++ b/lib/lvol/lvol.c @@ -224,7 +224,7 @@ _spdk_load_next_lvol(void *cb_arg, struct spdk_blob *blob, int lvolerrno) goto invalid; } - strncpy(lvol->name, attr, SPDK_LVOL_NAME_MAX); + snprintf(lvol->name, sizeof(lvol->name), "%s", attr); TAILQ_INSERT_TAIL(&lvs->lvols, lvol, link); @@ -319,7 +319,7 @@ _spdk_lvs_read_uuid(void *cb_arg, struct spdk_blob *blob, int lvolerrno) return; } - strncpy(lvs->name, attr, value_len); + snprintf(lvs->name, sizeof(lvs->name), "%s", attr); rc = _spdk_add_lvs_to_list(lvs); if (rc) { @@ -413,7 +413,7 @@ spdk_lvs_load(struct spdk_bs_dev *bs_dev, spdk_lvs_op_with_handle_complete cb_fn req->bs_dev = bs_dev; spdk_lvs_bs_opts_init(&opts); - strncpy(opts.bstype.bstype, "LVOLSTORE", SPDK_BLOBSTORE_TYPE_LENGTH); + snprintf(opts.bstype.bstype, sizeof(opts.bstype.bstype), "LVOLSTORE"); spdk_bs_load(bs_dev, &opts, _spdk_lvs_load_cb, req); } @@ -595,7 +595,7 @@ spdk_lvs_init(struct spdk_bs_dev *bs_dev, struct spdk_lvs_opts *o, } spdk_uuid_generate(&lvs->uuid); - strncpy(lvs->name, o->name, SPDK_LVS_NAME_MAX); + snprintf(lvs->name, sizeof(lvs->name), "%s", o->name); rc = _spdk_add_lvs_to_list(lvs); if (rc) { @@ -618,7 +618,7 @@ spdk_lvs_init(struct spdk_bs_dev *bs_dev, struct spdk_lvs_opts *o, lvs->bs_dev = bs_dev; lvs->destruct = false; - strncpy(opts.bstype.bstype, "LVOLSTORE", SPDK_BLOBSTORE_TYPE_LENGTH); + snprintf(opts.bstype.bstype, sizeof(opts.bstype.bstype), "LVOLSTORE"); SPDK_INFOLOG(SPDK_LOG_LVOL, "Initializing lvol store\n"); spdk_bs_init(bs_dev, &opts, _spdk_lvs_init_cb, lvs_req); @@ -638,10 +638,14 @@ _spdk_lvs_rename_cb(void *cb_arg, int lvolerrno) SPDK_ERRLOG("Lvol store rename operation failed\n"); /* Lvs renaming failed, so we should 'clear' new_name. * Otherwise it could cause a failure on the next attepmt to change the name to 'new_name' */ - strncpy(req->lvol_store->new_name, req->lvol_store->name, SPDK_LVS_NAME_MAX); + snprintf(req->lvol_store->new_name, + sizeof(req->lvol_store->new_name), + "%s", req->lvol_store->name); } else { /* Update lvs name with new_name */ - strncpy(req->lvol_store->name, req->lvol_store->new_name, SPDK_LVS_NAME_MAX); + snprintf(req->lvol_store->name, + sizeof(req->lvol_store->name), + "%s", req->lvol_store->new_name); } req->cb_fn(req->cb_arg, req->lvserrno); @@ -714,7 +718,7 @@ spdk_lvs_rename(struct spdk_lvol_store *lvs, const char *new_name, cb_fn(cb_arg, -ENOMEM); return; } - strncpy(lvs->new_name, new_name, SPDK_LVS_NAME_MAX); + snprintf(lvs->new_name, sizeof(lvs->new_name), "%s", new_name); req->lvol_store = lvs; req->cb_fn = cb_fn; req->cb_arg = cb_arg; @@ -1085,7 +1089,7 @@ spdk_lvol_create(struct spdk_lvol_store *lvs, const char *name, uint64_t sz, num_clusters = divide_round_up(sz, spdk_bs_get_cluster_size(bs)); lvol->close_only = false; lvol->thin_provision = thin_provision; - strncpy(lvol->name, name, SPDK_LVS_NAME_MAX); + snprintf(lvol->name, sizeof(lvol->name), "%s", name); spdk_uuid_generate(&lvol->uuid); spdk_uuid_fmt_lower(lvol->uuid_str, sizeof(lvol->uuid_str), &lvol->uuid); req->lvol = lvol; @@ -1145,7 +1149,7 @@ spdk_lvol_create_snapshot(struct spdk_lvol *origlvol, const char *snapshot_name, } newlvol->lvol_store = origlvol->lvol_store; - strncpy(newlvol->name, snapshot_name, SPDK_LVOL_NAME_MAX); + snprintf(newlvol->name, sizeof(newlvol->name), "%s", snapshot_name); snapshot_xattrs.count = 1; snapshot_xattrs.ctx = newlvol; snapshot_xattrs.names = &xattr_names; @@ -1200,7 +1204,7 @@ spdk_lvol_create_clone(struct spdk_lvol *origlvol, const char *clone_name, } newlvol->lvol_store = lvs; - strncpy(newlvol->name, clone_name, SPDK_LVOL_NAME_MAX); + snprintf(newlvol->name, sizeof(newlvol->name), "%s", clone_name); clone_xattrs.count = 1; clone_xattrs.ctx = newlvol; clone_xattrs.names = &xattr_names; @@ -1268,7 +1272,7 @@ _spdk_lvol_rename_cb(void *cb_arg, int lvolerrno) if (lvolerrno != 0) { SPDK_ERRLOG("Lvol rename operation failed\n"); } else { - strncpy(req->lvol->name, req->name, SPDK_LVOL_NAME_MAX); + snprintf(req->lvol->name, sizeof(req->lvol->name), "%s", req->name); } req->cb_fn(req->cb_arg, lvolerrno); @@ -1309,7 +1313,7 @@ spdk_lvol_rename(struct spdk_lvol *lvol, const char *new_name, req->cb_fn = cb_fn; req->cb_arg = cb_arg; req->lvol = lvol; - strncpy(req->name, new_name, SPDK_LVOL_NAME_MAX); + snprintf(req->name, sizeof(req->name), "%s", new_name); rc = spdk_blob_set_xattr(blob, "name", new_name, strlen(new_name) + 1); if (rc < 0) { diff --git a/test/unit/lib/bdev/vbdev_lvol.c/vbdev_lvol_ut.c b/test/unit/lib/bdev/vbdev_lvol.c/vbdev_lvol_ut.c index ca7b2c1ba..44382179e 100644 --- a/test/unit/lib/bdev/vbdev_lvol.c/vbdev_lvol_ut.c +++ b/test/unit/lib/bdev/vbdev_lvol.c/vbdev_lvol_ut.c @@ -115,7 +115,7 @@ spdk_lvs_rename(struct spdk_lvol_store *lvs, const char *new_name, if (g_lvs_with_name_already_exists) { g_lvolerrno = -EEXIST; } else { - strncpy(lvs->name, new_name, SPDK_LVS_NAME_MAX); + snprintf(lvs->name, sizeof(lvs->name), "%s", new_name); g_lvolerrno = 0; } @@ -141,7 +141,7 @@ spdk_lvol_rename(struct spdk_lvol *lvol, const char *new_name, } } - strncpy(lvol->name, new_name, SPDK_LVOL_NAME_MAX); + snprintf(lvol->name, sizeof(lvol->name), "%s", new_name); cb_fn(cb_arg, g_lvolerrno); } @@ -270,7 +270,7 @@ spdk_lvs_init(struct spdk_bs_dev *bs_dev, struct spdk_lvs_opts *o, SPDK_CU_ASSERT_FATAL(lvs != NULL); TAILQ_INIT(&lvs->lvols); spdk_uuid_generate(&lvs->uuid); - strncpy(lvs->name, o->name, SPDK_LVS_NAME_MAX); + snprintf(lvs->name, sizeof(lvs->name), "%s", o->name); lvs->bs_dev = bs_dev; error = 0; } @@ -571,7 +571,7 @@ spdk_lvol_create(struct spdk_lvol_store *lvs, const char *name, size_t sz, struct spdk_lvol *lvol; lvol = _lvol_create(lvs); - strncpy(lvol->name, name, SPDK_LVS_NAME_MAX); + snprintf(lvol->name, sizeof(lvol->name), "%s", name); cb_fn(cb_arg, lvol, 0); return 0; @@ -584,7 +584,7 @@ spdk_lvol_create_snapshot(struct spdk_lvol *lvol, const char *snapshot_name, struct spdk_lvol *snap; snap = _lvol_create(lvol->lvol_store); - strncpy(snap->name, snapshot_name, SPDK_LVOL_NAME_MAX); + snprintf(snap->name, sizeof(snap->name), "%s", snapshot_name); cb_fn(cb_arg, snap, 0); } @@ -595,7 +595,7 @@ spdk_lvol_create_clone(struct spdk_lvol *lvol, const char *clone_name, struct spdk_lvol *clone; clone = _lvol_create(lvol->lvol_store); - strncpy(clone->name, clone_name, SPDK_LVS_NAME_MAX); + snprintf(clone->name, sizeof(clone->name), "%s", clone_name); cb_fn(cb_arg, clone, 0); } @@ -690,7 +690,7 @@ ut_lvol_init(void) SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL); /* Assign name to lvs */ - strncpy(g_lvs->name, "UNIT_TEST_LVS_NAME", SPDK_LVS_NAME_MAX); + snprintf(g_lvs->name, sizeof(g_lvs->name), "UNIT_TEST_LVS_NAME"); SPDK_CU_ASSERT_FATAL(g_lvs->name != NULL); g_lvs_bdev->lvs = g_lvs; @@ -734,7 +734,7 @@ ut_lvol_snapshot(void) SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL); /* Assign name to lvs */ - strncpy(g_lvs->name, "UNIT_TEST_LVS_NAME", SPDK_LVS_NAME_MAX); + snprintf(g_lvs->name, sizeof(g_lvs->name), "UNIT_TEST_LVS_NAME"); SPDK_CU_ASSERT_FATAL(g_lvs->name != NULL); g_lvs_bdev->lvs = g_lvs; @@ -793,7 +793,7 @@ ut_lvol_clone(void) SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL); /* Assign name to lvs */ - strncpy(g_lvs->name, "UNIT_TEST_LVS_NAME", SPDK_LVS_NAME_MAX); + snprintf(g_lvs->name, sizeof(g_lvs->name), "UNIT_TEST_LVS_NAME"); SPDK_CU_ASSERT_FATAL(g_lvs->name != NULL); g_lvs_bdev->lvs = g_lvs; @@ -945,7 +945,7 @@ ut_lvol_examine(void) SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL); /* Assign name to lvs */ - strncpy(g_lvs->name, "UNIT_TEST_LVS_NAME", SPDK_LVS_NAME_MAX); + snprintf(g_lvs->name, sizeof(g_lvs->name), "UNIT_TEST_LVS_NAME"); SPDK_CU_ASSERT_FATAL(g_lvs->name != NULL); g_bs_dev = NULL; @@ -991,7 +991,7 @@ ut_lvol_rename(void) SPDK_CU_ASSERT_FATAL(g_base_bdev != NULL); /* Assign name to lvs */ - strncpy(g_lvs->name, "UNIT_TEST_LVS_NAME", SPDK_LVS_NAME_MAX); + snprintf(g_lvs->name, sizeof(g_lvs->name), "UNIT_TEST_LVS_NAME"); SPDK_CU_ASSERT_FATAL(g_lvs->name != NULL); g_lvs_bdev->lvs = g_lvs; diff --git a/test/unit/lib/lvol/lvol.c/lvol_ut.c b/test/unit/lib/lvol/lvol.c/lvol_ut.c index 9de9c5f40..b52eb7133 100644 --- a/test/unit/lib/lvol/lvol.c/lvol_ut.c +++ b/test/unit/lib/lvol/lvol.c/lvol_ut.c @@ -477,7 +477,7 @@ lvs_init_unload_success(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; @@ -527,7 +527,7 @@ lvs_init_destroy_success(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; @@ -575,7 +575,7 @@ lvs_init_opts_success(void) g_lvserrno = -1; spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); opts.cluster_sz = 8192; rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); CU_ASSERT(rc == 0); @@ -730,7 +730,7 @@ lvol_create_destroy_success(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); @@ -770,7 +770,7 @@ lvol_create_fail(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvol_store = NULL; g_lvserrno = 0; @@ -817,7 +817,7 @@ lvol_destroy_fail(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); CU_ASSERT(rc == 0); @@ -856,7 +856,7 @@ lvol_close_fail(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); CU_ASSERT(rc == 0); @@ -893,7 +893,7 @@ lvol_close_success(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); @@ -931,7 +931,7 @@ lvol_resize(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_resize_rc = 0; g_lvserrno = -1; @@ -1009,7 +1009,7 @@ lvs_load(void) init_dev(&dev); spdk_bs_opts_init(&bs_opts); - strncpy(bs_opts.bstype.bstype, "LVOLSTORE", SPDK_BLOBSTORE_TYPE_LENGTH); + snprintf(bs_opts.bstype.bstype, sizeof(bs_opts.bstype.bstype), "LVOLSTORE"); spdk_bs_init(&dev.bs_dev, &bs_opts, null_cb, NULL); spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); @@ -1102,7 +1102,7 @@ lvols_load(void) init_dev(&dev); spdk_bs_opts_init(&bs_opts); - strncpy(bs_opts.bstype.bstype, "LVOLSTORE", SPDK_BLOBSTORE_TYPE_LENGTH); + snprintf(bs_opts.bstype.bstype, sizeof(bs_opts.bstype.bstype), "LVOLSTORE"); spdk_bs_init(&dev.bs_dev, &bs_opts, null_cb, NULL); super_blob = calloc(1, sizeof(*super_blob)); SPDK_CU_ASSERT_FATAL(super_blob != NULL); @@ -1213,7 +1213,7 @@ lvol_open(void) init_dev(&dev); spdk_bs_opts_init(&bs_opts); - strncpy(bs_opts.bstype.bstype, "LVOLSTORE", SPDK_BLOBSTORE_TYPE_LENGTH); + snprintf(bs_opts.bstype.bstype, sizeof(bs_opts.bstype.bstype), "LVOLSTORE"); spdk_bs_init(&dev.bs_dev, &bs_opts, null_cb, NULL); super_blob = calloc(1, sizeof(*super_blob)); SPDK_CU_ASSERT_FATAL(super_blob != NULL); @@ -1312,7 +1312,7 @@ lvol_snapshot(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); @@ -1363,7 +1363,7 @@ lvol_snapshot_fail(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); @@ -1431,7 +1431,7 @@ lvol_clone(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); @@ -1495,7 +1495,7 @@ lvol_clone_fail(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); @@ -1573,7 +1573,7 @@ lvol_names(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; g_lvol_store = NULL; @@ -1650,7 +1650,7 @@ lvol_rename(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; g_lvol_store = NULL; @@ -1722,7 +1722,7 @@ lvs_rename(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", SPDK_LVS_NAME_MAX); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; g_lvol_store = NULL; rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); @@ -1732,7 +1732,7 @@ lvs_rename(void) lvs = g_lvol_store; spdk_lvs_opts_init(&opts); - strncpy(opts.name, "unimportant_lvs_name", SPDK_LVS_NAME_MAX); + snprintf(opts.name, sizeof(opts.name), "unimportant_lvs_name"); g_lvserrno = -1; g_lvol_store = NULL; rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); @@ -1758,14 +1758,14 @@ lvs_rename(void) /* Trying to rename lvs with another rename process started with the same name */ /* Simulate renaming process in progress */ - strncpy(lvs2->new_name, "another_new_lvs_name", SPDK_LVS_NAME_MAX); + snprintf(lvs2->new_name, sizeof(lvs2->new_name), "another_new_lvs_name"); CU_ASSERT_STRING_EQUAL(lvs2->new_name, "another_new_lvs_name"); /* Start second process */ spdk_lvs_rename(lvs, "another_new_lvs_name", lvol_store_op_complete, NULL); CU_ASSERT(g_lvserrno == -EEXIST); CU_ASSERT_STRING_EQUAL(lvs->name, "new_lvs_name"); /* reverting lvs2 new name to proper value */ - strncpy(lvs2->new_name, "unimportant_lvs_name", SPDK_LVS_NAME_MAX); + snprintf(lvs2->new_name, sizeof(lvs2->new_name), "unimportant_lvs_name"); CU_ASSERT_STRING_EQUAL(lvs2->new_name, "unimportant_lvs_name"); /* Simulate error while lvs rename */ @@ -1800,7 +1800,7 @@ static void lvol_refcnt(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL); @@ -1862,7 +1862,7 @@ lvol_create_thin_provisioned(void) spdk_allocate_thread(_lvol_send_msg, NULL, NULL, NULL, NULL); spdk_lvs_opts_init(&opts); - strncpy(opts.name, "lvs", sizeof(opts.name)); + snprintf(opts.name, sizeof(opts.name), "lvs"); g_lvserrno = -1; rc = spdk_lvs_init(&dev.bs_dev, &opts, lvol_store_op_with_handle_complete, NULL);