Skip to content

Commit 5df496e

Browse files
meritissimo1Christoph Hellwig
authored andcommitted
nvmet: replace strncpy with strscpy
The strncpy() function is deprecated for NUL-terminated strings as explained in the "strncpy() on NUL-terminated strings" section of Documentation/process/deprecated.rst. The key issues are: - strncpy() fails to guarantee NULL-termination when source > destination - it unnecessarily zero-pads short strings, causing performance overhead strscpy() is the proper replacement because: - it guarantees NULL-termination - it avoids redundant zero-padding - it aligns with current kernel string-copying best practice memcpy() was rejected because: - NQN buffers (subsysnqn/hostnqn) are treated as NULL-terminated strings: - strcmp() usage in nvmet_host_allowed() (discovery.c) - strscpy() to copy subsysnqn in nvmet_execute_disc_identify() seq_buf wasn't used because: - this is a simple fixed-size buffer copy - there is no need for progressive string construction features Signed-off-by: Marcelo Moreira <marcelomoreira1905@gmail.com> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
1 parent 674f872 commit 5df496e

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/nvme/target/discovery.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ static void nvmet_format_discovery_entry(struct nvmf_disc_rsp_page_hdr *hdr,
119119
memcpy(e->trsvcid, port->disc_addr.trsvcid, NVMF_TRSVCID_SIZE);
120120
memcpy(e->traddr, traddr, NVMF_TRADDR_SIZE);
121121
memcpy(e->tsas.common, port->disc_addr.tsas.common, NVMF_TSAS_SIZE);
122-
strncpy(e->subnqn, subsys_nqn, NVMF_NQN_SIZE);
122+
strscpy(e->subnqn, subsys_nqn, NVMF_NQN_SIZE);
123123
}
124124

125125
/*

0 commit comments

Comments
 (0)