mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 04:21:09 -04:00
RDMA/core: Prefer NLA_NUL_STRING
These attributes are evaluated as c-string (passed to strcmp), but
NLA_STRING doesn't check for the presence of a \0 terminator.
Either this needs to switch to nla_strcmp() and needs to adjust printf fmt
specifier to not use plain %s, or this needs to use NLA_NUL_STRING.
As the code has been this way for long time, it seems to me that userspace
does include the terminating nul, even tough its not enforced so far, and
thus NLA_NUL_STRING use is the simpler solution.
Fixes: 30dc5e63d6 ("RDMA/core: Add support for iWARP Port Mapper user space service")
Link: https://patch.msgid.link/r/20260330122742.13315-1-fw@strlen.de
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
committed by
Jason Gunthorpe
parent
973403ca35
commit
6ed3d14fc4
@@ -365,9 +365,9 @@ int iwpm_remove_mapping(struct sockaddr_storage *local_addr, u8 nl_client)
|
||||
/* netlink attribute policy for the received response to register pid request */
|
||||
static const struct nla_policy resp_reg_policy[IWPM_NLA_RREG_PID_MAX] = {
|
||||
[IWPM_NLA_RREG_PID_SEQ] = { .type = NLA_U32 },
|
||||
[IWPM_NLA_RREG_IBDEV_NAME] = { .type = NLA_STRING,
|
||||
[IWPM_NLA_RREG_IBDEV_NAME] = { .type = NLA_NUL_STRING,
|
||||
.len = IWPM_DEVNAME_SIZE - 1 },
|
||||
[IWPM_NLA_RREG_ULIB_NAME] = { .type = NLA_STRING,
|
||||
[IWPM_NLA_RREG_ULIB_NAME] = { .type = NLA_NUL_STRING,
|
||||
.len = IWPM_ULIBNAME_SIZE - 1 },
|
||||
[IWPM_NLA_RREG_ULIB_VER] = { .type = NLA_U16 },
|
||||
[IWPM_NLA_RREG_PID_ERR] = { .type = NLA_U16 }
|
||||
@@ -677,7 +677,7 @@ int iwpm_remote_info_cb(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
|
||||
/* netlink attribute policy for the received request for mapping info */
|
||||
static const struct nla_policy resp_mapinfo_policy[IWPM_NLA_MAPINFO_REQ_MAX] = {
|
||||
[IWPM_NLA_MAPINFO_ULIB_NAME] = { .type = NLA_STRING,
|
||||
[IWPM_NLA_MAPINFO_ULIB_NAME] = { .type = NLA_NUL_STRING,
|
||||
.len = IWPM_ULIBNAME_SIZE - 1 },
|
||||
[IWPM_NLA_MAPINFO_ULIB_VER] = { .type = NLA_U16 }
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user