Skip to content

Commit 364d838

Browse files
authored
Merge pull request #565 from CodeConstruct/pr/563
test: mi: ensure we're providing full initialised buffers to the libnvme-mi API
2 parents 568c5b8 + bd3bfd4 commit 364d838

1 file changed

Lines changed: 14 additions & 11 deletions

File tree

test/mi.c

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -575,8 +575,11 @@ static int test_admin_invalid_formats_cb(struct nvme_mi_ep *ep,
575575

576576
static void test_admin_invalid_formats(nvme_mi_ep_t ep)
577577
{
578+
struct {
579+
struct nvme_mi_admin_req_hdr hdr;
580+
uint8_t data[4];
581+
} req = { 0 };
578582
struct nvme_mi_admin_resp_hdr resp = { 0 };
579-
struct nvme_mi_admin_req_hdr req = { 0 };
580583
nvme_mi_ctrl_t ctrl;
581584
size_t len;
582585
int rc;
@@ -588,37 +591,37 @@ static void test_admin_invalid_formats(nvme_mi_ep_t ep)
588591

589592
/* unaligned req size */
590593
len = 0;
591-
rc = nvme_mi_admin_xfer(ctrl, &req, 1, &resp, 0, &len);
594+
rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 1, &resp, 0, &len);
592595
assert(rc != 0);
593596

594597
/* unaligned resp size */
595598
len = 1;
596-
rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 0, &len);
599+
rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 0, &len);
597600
assert(rc != 0);
598601

599602
/* unaligned resp offset */
600603
len = 4;
601-
rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 1, &len);
604+
rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 1, &len);
602605
assert(rc != 0);
603606

604607
/* resp too large */
605608
len = 4096 + 4;
606-
rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 0, &len);
609+
rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 0, &len);
607610
assert(rc != 0);
608611

609612
/* resp offset too large */
610613
len = 4;
611-
rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, (off_t)1 << 32, &len);
614+
rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, (off_t)1 << 32, &len);
612615
assert(rc != 0);
613616

614617
/* resp offset with no len */
615618
len = 0;
616-
rc = nvme_mi_admin_xfer(ctrl, &req, 0, &resp, 4, &len);
619+
rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 0, &resp, 4, &len);
617620
assert(rc != 0);
618621

619622
/* req and resp payloads */
620623
len = 4;
621-
rc = nvme_mi_admin_xfer(ctrl, &req, 4, &resp, 0, &len);
624+
rc = nvme_mi_admin_xfer(ctrl, &req.hdr, 4, &resp, 0, &len);
622625
assert(rc != 0);
623626
}
624627

@@ -996,7 +999,7 @@ static int test_admin_set_features_cb(struct nvme_mi_ep *ep,
996999
static void test_set_features(nvme_mi_ep_t ep)
9971000
{
9981001
struct nvme_set_features_args args = { 0 };
999-
struct nvme_timestamp tstamp;
1002+
struct nvme_timestamp tstamp = { 0 };
10001003
nvme_mi_ctrl_t ctrl;
10011004
uint32_t res;
10021005
int rc, i;
@@ -1339,7 +1342,7 @@ static int test_admin_ns_mgmt_cb(struct nvme_mi_ep *ep,
13391342

13401343
static void test_admin_ns_mgmt_create(struct nvme_mi_ep *ep)
13411344
{
1342-
struct nvme_id_ns nsid;
1345+
struct nvme_id_ns nsid = { 0 };
13431346
nvme_mi_ctrl_t ctrl;
13441347
__u32 ns;
13451348
int rc;
@@ -1828,8 +1831,8 @@ static int test_admin_get_log_split_cb(struct nvme_mi_ep *ep,
18281831

18291832
static void test_admin_get_log_split(struct nvme_mi_ep *ep)
18301833
{
1834+
struct nvme_get_log_args args = { 0 };
18311835
unsigned char buf[4096 * 2 + 4];
1832-
struct nvme_get_log_args args;
18331836
struct log_data ldata;
18341837
nvme_mi_ctrl_t ctrl;
18351838
int rc;

0 commit comments

Comments
 (0)