treewide: rename nla_strlcpy to nla_strscpy.

Calls to nla_strlcpy are now replaced by calls to nla_strscpy which is the new
name of this function.

Signed-off-by: Francis Laniel <laniel_francis@privacyrequired.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Francis Laniel 2020-11-15 18:08:06 +01:00 committed by Jakub Kicinski
parent 9ca718743a
commit 872f690341
29 changed files with 49 additions and 49 deletions

View File

@ -932,7 +932,7 @@ static int nldev_set_doit(struct sk_buff *skb, struct nlmsghdr *nlh,
if (tb[RDMA_NLDEV_ATTR_DEV_NAME]) { if (tb[RDMA_NLDEV_ATTR_DEV_NAME]) {
char name[IB_DEVICE_NAME_MAX] = {}; char name[IB_DEVICE_NAME_MAX] = {};
nla_strlcpy(name, tb[RDMA_NLDEV_ATTR_DEV_NAME], nla_strscpy(name, tb[RDMA_NLDEV_ATTR_DEV_NAME],
IB_DEVICE_NAME_MAX); IB_DEVICE_NAME_MAX);
if (strlen(name) == 0) { if (strlen(name) == 0) {
err = -EINVAL; err = -EINVAL;
@ -1529,13 +1529,13 @@ static int nldev_newlink(struct sk_buff *skb, struct nlmsghdr *nlh,
!tb[RDMA_NLDEV_ATTR_LINK_TYPE] || !tb[RDMA_NLDEV_ATTR_NDEV_NAME]) !tb[RDMA_NLDEV_ATTR_LINK_TYPE] || !tb[RDMA_NLDEV_ATTR_NDEV_NAME])
return -EINVAL; return -EINVAL;
nla_strlcpy(ibdev_name, tb[RDMA_NLDEV_ATTR_DEV_NAME], nla_strscpy(ibdev_name, tb[RDMA_NLDEV_ATTR_DEV_NAME],
sizeof(ibdev_name)); sizeof(ibdev_name));
if (strchr(ibdev_name, '%') || strlen(ibdev_name) == 0) if (strchr(ibdev_name, '%') || strlen(ibdev_name) == 0)
return -EINVAL; return -EINVAL;
nla_strlcpy(type, tb[RDMA_NLDEV_ATTR_LINK_TYPE], sizeof(type)); nla_strscpy(type, tb[RDMA_NLDEV_ATTR_LINK_TYPE], sizeof(type));
nla_strlcpy(ndev_name, tb[RDMA_NLDEV_ATTR_NDEV_NAME], nla_strscpy(ndev_name, tb[RDMA_NLDEV_ATTR_NDEV_NAME],
sizeof(ndev_name)); sizeof(ndev_name));
ndev = dev_get_by_name(sock_net(skb->sk), ndev_name); ndev = dev_get_by_name(sock_net(skb->sk), ndev_name);
@ -1602,7 +1602,7 @@ static int nldev_get_chardev(struct sk_buff *skb, struct nlmsghdr *nlh,
if (err || !tb[RDMA_NLDEV_ATTR_CHARDEV_TYPE]) if (err || !tb[RDMA_NLDEV_ATTR_CHARDEV_TYPE])
return -EINVAL; return -EINVAL;
nla_strlcpy(client_name, tb[RDMA_NLDEV_ATTR_CHARDEV_TYPE], nla_strscpy(client_name, tb[RDMA_NLDEV_ATTR_CHARDEV_TYPE],
sizeof(client_name)); sizeof(client_name));
if (tb[RDMA_NLDEV_ATTR_DEV_INDEX]) { if (tb[RDMA_NLDEV_ATTR_DEV_INDEX]) {

View File

@ -186,7 +186,7 @@ static int vxcan_newlink(struct net *net, struct net_device *dev,
} }
if (ifmp && tbp[IFLA_IFNAME]) { if (ifmp && tbp[IFLA_IFNAME]) {
nla_strlcpy(ifname, tbp[IFLA_IFNAME], IFNAMSIZ); nla_strscpy(ifname, tbp[IFLA_IFNAME], IFNAMSIZ);
name_assign_type = NET_NAME_USER; name_assign_type = NET_NAME_USER;
} else { } else {
snprintf(ifname, IFNAMSIZ, DRV_NAME "%%d"); snprintf(ifname, IFNAMSIZ, DRV_NAME "%%d");
@ -223,7 +223,7 @@ static int vxcan_newlink(struct net *net, struct net_device *dev,
/* register first device */ /* register first device */
if (tb[IFLA_IFNAME]) if (tb[IFLA_IFNAME])
nla_strlcpy(dev->name, tb[IFLA_IFNAME], IFNAMSIZ); nla_strscpy(dev->name, tb[IFLA_IFNAME], IFNAMSIZ);
else else
snprintf(dev->name, IFNAMSIZ, DRV_NAME "%%d"); snprintf(dev->name, IFNAMSIZ, DRV_NAME "%%d");

View File

@ -1329,7 +1329,7 @@ static int veth_newlink(struct net *src_net, struct net_device *dev,
} }
if (ifmp && tbp[IFLA_IFNAME]) { if (ifmp && tbp[IFLA_IFNAME]) {
nla_strlcpy(ifname, tbp[IFLA_IFNAME], IFNAMSIZ); nla_strscpy(ifname, tbp[IFLA_IFNAME], IFNAMSIZ);
name_assign_type = NET_NAME_USER; name_assign_type = NET_NAME_USER;
} else { } else {
snprintf(ifname, IFNAMSIZ, DRV_NAME "%%d"); snprintf(ifname, IFNAMSIZ, DRV_NAME "%%d");
@ -1379,7 +1379,7 @@ static int veth_newlink(struct net *src_net, struct net_device *dev,
eth_hw_addr_random(dev); eth_hw_addr_random(dev);
if (tb[IFLA_IFNAME]) if (tb[IFLA_IFNAME])
nla_strlcpy(dev->name, tb[IFLA_IFNAME], IFNAMSIZ); nla_strscpy(dev->name, tb[IFLA_IFNAME], IFNAMSIZ);
else else
snprintf(dev->name, IFNAMSIZ, DRV_NAME "%%d"); snprintf(dev->name, IFNAMSIZ, DRV_NAME "%%d");

View File

@ -89,7 +89,7 @@ static inline int nla_put_u64_0pad(struct sk_buff *skb, int attrtype, u64 value)
nla_get_u64, nla_put_u64_0pad, false) nla_get_u64, nla_put_u64_0pad, false)
#define __str_field(attr_nr, attr_flag, name, maxlen) \ #define __str_field(attr_nr, attr_flag, name, maxlen) \
__array(attr_nr, attr_flag, name, NLA_NUL_STRING, char, maxlen, \ __array(attr_nr, attr_flag, name, NLA_NUL_STRING, char, maxlen, \
nla_strlcpy, nla_put, false) nla_strscpy, nla_put, false)
#define __bin_field(attr_nr, attr_flag, name, maxlen) \ #define __bin_field(attr_nr, attr_flag, name, maxlen) \
__array(attr_nr, attr_flag, name, NLA_BINARY, char, maxlen, \ __array(attr_nr, attr_flag, name, NLA_BINARY, char, maxlen, \
nla_memcpy, nla_put, false) nla_memcpy, nla_put, false)

View File

@ -142,7 +142,7 @@
* Attribute Misc: * Attribute Misc:
* nla_memcpy(dest, nla, count) copy attribute into memory * nla_memcpy(dest, nla, count) copy attribute into memory
* nla_memcmp(nla, data, size) compare attribute with memory area * nla_memcmp(nla, data, size) compare attribute with memory area
* nla_strlcpy(dst, nla, size) copy attribute to a sized string * nla_strscpy(dst, nla, size) copy attribute to a sized string
* nla_strcmp(nla, str) compare attribute with string * nla_strcmp(nla, str) compare attribute with string
* *
* Attribute Parsing: * Attribute Parsing:
@ -506,7 +506,7 @@ int __nla_parse(struct nlattr **tb, int maxtype, const struct nlattr *head,
struct netlink_ext_ack *extack); struct netlink_ext_ack *extack);
int nla_policy_len(const struct nla_policy *, int); int nla_policy_len(const struct nla_policy *, int);
struct nlattr *nla_find(const struct nlattr *head, int len, int attrtype); struct nlattr *nla_find(const struct nlattr *head, int len, int attrtype);
ssize_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dstsize); ssize_t nla_strscpy(char *dst, const struct nlattr *nla, size_t dstsize);
char *nla_strdup(const struct nlattr *nla, gfp_t flags); char *nla_strdup(const struct nlattr *nla, gfp_t flags);
int nla_memcpy(void *dest, const struct nlattr *src, int count); int nla_memcpy(void *dest, const struct nlattr *src, int count);
int nla_memcmp(const struct nlattr *nla, const void *data, size_t size); int nla_memcmp(const struct nlattr *nla, const void *data, size_t size);

View File

@ -512,7 +512,7 @@ tcf_change_indev(struct net *net, struct nlattr *indev_tlv,
char indev[IFNAMSIZ]; char indev[IFNAMSIZ];
struct net_device *dev; struct net_device *dev;
if (nla_strlcpy(indev, indev_tlv, IFNAMSIZ) < 0) { if (nla_strscpy(indev, indev_tlv, IFNAMSIZ) < 0) {
NL_SET_ERR_MSG_ATTR(extack, indev_tlv, NL_SET_ERR_MSG_ATTR(extack, indev_tlv,
"Interface name too long"); "Interface name too long");
return -EINVAL; return -EINVAL;

View File

@ -346,7 +346,7 @@ static int parse(struct nlattr *na, struct cpumask *mask)
data = kmalloc(len, GFP_KERNEL); data = kmalloc(len, GFP_KERNEL);
if (!data) if (!data)
return -ENOMEM; return -ENOMEM;
nla_strlcpy(data, na, len); nla_strscpy(data, na, len);
ret = cpulist_parse(data, mask); ret = cpulist_parse(data, mask);
kfree(data); kfree(data);
return ret; return ret;

View File

@ -709,7 +709,7 @@ struct nlattr *nla_find(const struct nlattr *head, int len, int attrtype)
EXPORT_SYMBOL(nla_find); EXPORT_SYMBOL(nla_find);
/** /**
* nla_strlcpy - Copy string attribute payload into a sized buffer * nla_strscpy - Copy string attribute payload into a sized buffer
* @dst: Where to copy the string to. * @dst: Where to copy the string to.
* @nla: Attribute to copy the string from. * @nla: Attribute to copy the string from.
* @dstsize: Size of destination buffer. * @dstsize: Size of destination buffer.
@ -722,7 +722,7 @@ EXPORT_SYMBOL(nla_find);
* * -E2BIG - If @dstsize is 0 or greater than U16_MAX or @nla length greater * * -E2BIG - If @dstsize is 0 or greater than U16_MAX or @nla length greater
* than @dstsize. * than @dstsize.
*/ */
ssize_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dstsize) ssize_t nla_strscpy(char *dst, const struct nlattr *nla, size_t dstsize)
{ {
size_t srclen = nla_len(nla); size_t srclen = nla_len(nla);
char *src = nla_data(nla); char *src = nla_data(nla);
@ -749,7 +749,7 @@ ssize_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dstsize)
return ret; return ret;
} }
EXPORT_SYMBOL(nla_strlcpy); EXPORT_SYMBOL(nla_strscpy);
/** /**
* nla_strdup - Copy string attribute payload into a newly allocated buffer * nla_strdup - Copy string attribute payload into a newly allocated buffer

View File

@ -563,7 +563,7 @@ static int fib_nl2rule(struct sk_buff *skb, struct nlmsghdr *nlh,
struct net_device *dev; struct net_device *dev;
nlrule->iifindex = -1; nlrule->iifindex = -1;
nla_strlcpy(nlrule->iifname, tb[FRA_IIFNAME], IFNAMSIZ); nla_strscpy(nlrule->iifname, tb[FRA_IIFNAME], IFNAMSIZ);
dev = __dev_get_by_name(net, nlrule->iifname); dev = __dev_get_by_name(net, nlrule->iifname);
if (dev) if (dev)
nlrule->iifindex = dev->ifindex; nlrule->iifindex = dev->ifindex;
@ -573,7 +573,7 @@ static int fib_nl2rule(struct sk_buff *skb, struct nlmsghdr *nlh,
struct net_device *dev; struct net_device *dev;
nlrule->oifindex = -1; nlrule->oifindex = -1;
nla_strlcpy(nlrule->oifname, tb[FRA_OIFNAME], IFNAMSIZ); nla_strscpy(nlrule->oifname, tb[FRA_OIFNAME], IFNAMSIZ);
dev = __dev_get_by_name(net, nlrule->oifname); dev = __dev_get_by_name(net, nlrule->oifname);
if (dev) if (dev)
nlrule->oifindex = dev->ifindex; nlrule->oifindex = dev->ifindex;

View File

@ -1939,7 +1939,7 @@ static const struct rtnl_link_ops *linkinfo_to_kind_ops(const struct nlattr *nla
if (linfo[IFLA_INFO_KIND]) { if (linfo[IFLA_INFO_KIND]) {
char kind[MODULE_NAME_LEN]; char kind[MODULE_NAME_LEN];
nla_strlcpy(kind, linfo[IFLA_INFO_KIND], sizeof(kind)); nla_strscpy(kind, linfo[IFLA_INFO_KIND], sizeof(kind));
ops = rtnl_link_ops_get(kind); ops = rtnl_link_ops_get(kind);
} }
@ -2953,9 +2953,9 @@ static struct net_device *rtnl_dev_get(struct net *net,
if (!ifname) { if (!ifname) {
ifname = buffer; ifname = buffer;
if (ifname_attr) if (ifname_attr)
nla_strlcpy(ifname, ifname_attr, IFNAMSIZ); nla_strscpy(ifname, ifname_attr, IFNAMSIZ);
else if (altifname_attr) else if (altifname_attr)
nla_strlcpy(ifname, altifname_attr, ALTIFNAMSIZ); nla_strscpy(ifname, altifname_attr, ALTIFNAMSIZ);
else else
return NULL; return NULL;
} }
@ -2983,7 +2983,7 @@ static int rtnl_setlink(struct sk_buff *skb, struct nlmsghdr *nlh,
goto errout; goto errout;
if (tb[IFLA_IFNAME]) if (tb[IFLA_IFNAME])
nla_strlcpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); nla_strscpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ);
else else
ifname[0] = '\0'; ifname[0] = '\0';
@ -3264,7 +3264,7 @@ replay:
return err; return err;
if (tb[IFLA_IFNAME]) if (tb[IFLA_IFNAME])
nla_strlcpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ); nla_strscpy(ifname, tb[IFLA_IFNAME], IFNAMSIZ);
else else
ifname[0] = '\0'; ifname[0] = '\0';
@ -3296,7 +3296,7 @@ replay:
memset(linkinfo, 0, sizeof(linkinfo)); memset(linkinfo, 0, sizeof(linkinfo));
if (linkinfo[IFLA_INFO_KIND]) { if (linkinfo[IFLA_INFO_KIND]) {
nla_strlcpy(kind, linkinfo[IFLA_INFO_KIND], sizeof(kind)); nla_strscpy(kind, linkinfo[IFLA_INFO_KIND], sizeof(kind));
ops = rtnl_link_ops_get(kind); ops = rtnl_link_ops_get(kind);
} else { } else {
kind[0] = '\0'; kind[0] = '\0';

View File

@ -658,7 +658,7 @@ static int dn_nl_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh,
ifa->ifa_dev = dn_db; ifa->ifa_dev = dn_db;
if (tb[IFA_LABEL]) if (tb[IFA_LABEL])
nla_strlcpy(ifa->ifa_label, tb[IFA_LABEL], IFNAMSIZ); nla_strscpy(ifa->ifa_label, tb[IFA_LABEL], IFNAMSIZ);
else else
memcpy(ifa->ifa_label, dev->name, IFNAMSIZ); memcpy(ifa->ifa_label, dev->name, IFNAMSIZ);

View File

@ -149,7 +149,7 @@ static struct net_device *ieee802154_nl_get_dev(struct genl_info *info)
if (info->attrs[IEEE802154_ATTR_DEV_NAME]) { if (info->attrs[IEEE802154_ATTR_DEV_NAME]) {
char name[IFNAMSIZ + 1]; char name[IFNAMSIZ + 1];
nla_strlcpy(name, info->attrs[IEEE802154_ATTR_DEV_NAME], nla_strscpy(name, info->attrs[IEEE802154_ATTR_DEV_NAME],
sizeof(name)); sizeof(name));
dev = dev_get_by_name(&init_net, name); dev = dev_get_by_name(&init_net, name);
} else if (info->attrs[IEEE802154_ATTR_DEV_INDEX]) { } else if (info->attrs[IEEE802154_ATTR_DEV_INDEX]) {

View File

@ -880,7 +880,7 @@ static struct in_ifaddr *rtm_to_ifaddr(struct net *net, struct nlmsghdr *nlh,
ifa->ifa_broadcast = nla_get_in_addr(tb[IFA_BROADCAST]); ifa->ifa_broadcast = nla_get_in_addr(tb[IFA_BROADCAST]);
if (tb[IFA_LABEL]) if (tb[IFA_LABEL])
nla_strlcpy(ifa->ifa_label, tb[IFA_LABEL], IFNAMSIZ); nla_strscpy(ifa->ifa_label, tb[IFA_LABEL], IFNAMSIZ);
else else
memcpy(ifa->ifa_label, dev->name, IFNAMSIZ); memcpy(ifa->ifa_label, dev->name, IFNAMSIZ);

View File

@ -973,7 +973,7 @@ bool fib_metrics_match(struct fib_config *cfg, struct fib_info *fi)
char tmp[TCP_CA_NAME_MAX]; char tmp[TCP_CA_NAME_MAX];
bool ecn_ca = false; bool ecn_ca = false;
nla_strlcpy(tmp, nla, sizeof(tmp)); nla_strscpy(tmp, nla, sizeof(tmp));
val = tcp_ca_get_key_by_name(fi->fib_net, tmp, &ecn_ca); val = tcp_ca_get_key_by_name(fi->fib_net, tmp, &ecn_ca);
} else { } else {
if (nla_len(nla) != sizeof(u32)) if (nla_len(nla) != sizeof(u32))

View File

@ -31,7 +31,7 @@ static int ip_metrics_convert(struct net *net, struct nlattr *fc_mx,
if (type == RTAX_CC_ALGO) { if (type == RTAX_CC_ALGO) {
char tmp[TCP_CA_NAME_MAX]; char tmp[TCP_CA_NAME_MAX];
nla_strlcpy(tmp, nla, sizeof(tmp)); nla_strscpy(tmp, nla, sizeof(tmp));
val = tcp_ca_get_key_by_name(net, tmp, &ecn_ca); val = tcp_ca_get_key_by_name(net, tmp, &ecn_ca);
if (val == TCP_CA_UNSPEC) { if (val == TCP_CA_UNSPEC) {
NL_SET_ERR_MSG(extack, "Unknown tcp congestion algorithm"); NL_SET_ERR_MSG(extack, "Unknown tcp congestion algorithm");

View File

@ -226,7 +226,7 @@ hash_netiface4_uadt(struct ip_set *set, struct nlattr *tb[],
if (e.cidr > HOST_MASK) if (e.cidr > HOST_MASK)
return -IPSET_ERR_INVALID_CIDR; return -IPSET_ERR_INVALID_CIDR;
} }
nla_strlcpy(e.iface, tb[IPSET_ATTR_IFACE], IFNAMSIZ); nla_strscpy(e.iface, tb[IPSET_ATTR_IFACE], IFNAMSIZ);
if (tb[IPSET_ATTR_CADT_FLAGS]) { if (tb[IPSET_ATTR_CADT_FLAGS]) {
u32 cadt_flags = ip_set_get_h32(tb[IPSET_ATTR_CADT_FLAGS]); u32 cadt_flags = ip_set_get_h32(tb[IPSET_ATTR_CADT_FLAGS]);
@ -443,7 +443,7 @@ hash_netiface6_uadt(struct ip_set *set, struct nlattr *tb[],
ip6_netmask(&e.ip, e.cidr); ip6_netmask(&e.ip, e.cidr);
nla_strlcpy(e.iface, tb[IPSET_ATTR_IFACE], IFNAMSIZ); nla_strscpy(e.iface, tb[IPSET_ATTR_IFACE], IFNAMSIZ);
if (tb[IPSET_ATTR_CADT_FLAGS]) { if (tb[IPSET_ATTR_CADT_FLAGS]) {
u32 cadt_flags = ip_set_get_h32(tb[IPSET_ATTR_CADT_FLAGS]); u32 cadt_flags = ip_set_get_h32(tb[IPSET_ATTR_CADT_FLAGS]);

View File

@ -1282,7 +1282,7 @@ static struct nft_chain *nft_chain_lookup(struct net *net,
if (nla == NULL) if (nla == NULL)
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
nla_strlcpy(search, nla, sizeof(search)); nla_strscpy(search, nla, sizeof(search));
WARN_ON(!rcu_read_lock_held() && WARN_ON(!rcu_read_lock_held() &&
!lockdep_commit_lock_is_held(net)); !lockdep_commit_lock_is_held(net));
@ -1722,7 +1722,7 @@ static struct nft_hook *nft_netdev_hook_alloc(struct net *net,
goto err_hook_alloc; goto err_hook_alloc;
} }
nla_strlcpy(ifname, attr, IFNAMSIZ); nla_strscpy(ifname, attr, IFNAMSIZ);
dev = __dev_get_by_name(net, ifname); dev = __dev_get_by_name(net, ifname);
if (!dev) { if (!dev) {
err = -ENOENT; err = -ENOENT;
@ -5735,7 +5735,7 @@ struct nft_object *nft_obj_lookup(const struct net *net,
struct rhlist_head *tmp, *list; struct rhlist_head *tmp, *list;
struct nft_object *obj; struct nft_object *obj;
nla_strlcpy(search, nla, sizeof(search)); nla_strscpy(search, nla, sizeof(search));
k.name = search; k.name = search;
WARN_ON_ONCE(!rcu_read_lock_held() && WARN_ON_ONCE(!rcu_read_lock_held() &&

View File

@ -112,7 +112,7 @@ static int nfnl_acct_new(struct net *net, struct sock *nfnl,
nfacct->flags = flags; nfacct->flags = flags;
} }
nla_strlcpy(nfacct->name, tb[NFACCT_NAME], NFACCT_NAME_MAX); nla_strscpy(nfacct->name, tb[NFACCT_NAME], NFACCT_NAME_MAX);
if (tb[NFACCT_BYTES]) { if (tb[NFACCT_BYTES]) {
atomic64_set(&nfacct->bytes, atomic64_set(&nfacct->bytes,

View File

@ -146,7 +146,7 @@ nfnl_cthelper_expect_policy(struct nf_conntrack_expect_policy *expect_policy,
!tb[NFCTH_POLICY_EXPECT_TIMEOUT]) !tb[NFCTH_POLICY_EXPECT_TIMEOUT])
return -EINVAL; return -EINVAL;
nla_strlcpy(expect_policy->name, nla_strscpy(expect_policy->name,
tb[NFCTH_POLICY_NAME], NF_CT_HELPER_NAME_LEN); tb[NFCTH_POLICY_NAME], NF_CT_HELPER_NAME_LEN);
expect_policy->max_expected = expect_policy->max_expected =
ntohl(nla_get_be32(tb[NFCTH_POLICY_EXPECT_MAX])); ntohl(nla_get_be32(tb[NFCTH_POLICY_EXPECT_MAX]));
@ -233,7 +233,7 @@ nfnl_cthelper_create(const struct nlattr * const tb[],
if (ret < 0) if (ret < 0)
goto err1; goto err1;
nla_strlcpy(helper->name, nla_strscpy(helper->name,
tb[NFCTH_NAME], NF_CT_HELPER_NAME_LEN); tb[NFCTH_NAME], NF_CT_HELPER_NAME_LEN);
size = ntohl(nla_get_be32(tb[NFCTH_PRIV_DATA_LEN])); size = ntohl(nla_get_be32(tb[NFCTH_PRIV_DATA_LEN]));
if (size > sizeof_field(struct nf_conn_help, data)) { if (size > sizeof_field(struct nf_conn_help, data)) {

View File

@ -990,7 +990,7 @@ static int nft_ct_helper_obj_init(const struct nft_ctx *ctx,
if (!priv->l4proto) if (!priv->l4proto)
return -ENOENT; return -ENOENT;
nla_strlcpy(name, tb[NFTA_CT_HELPER_NAME], sizeof(name)); nla_strscpy(name, tb[NFTA_CT_HELPER_NAME], sizeof(name));
if (tb[NFTA_CT_HELPER_L3PROTO]) if (tb[NFTA_CT_HELPER_L3PROTO])
family = ntohs(nla_get_be16(tb[NFTA_CT_HELPER_L3PROTO])); family = ntohs(nla_get_be16(tb[NFTA_CT_HELPER_L3PROTO]));

View File

@ -152,7 +152,7 @@ static int nft_log_init(const struct nft_ctx *ctx,
priv->prefix = kmalloc(nla_len(nla) + 1, GFP_KERNEL); priv->prefix = kmalloc(nla_len(nla) + 1, GFP_KERNEL);
if (priv->prefix == NULL) if (priv->prefix == NULL)
return -ENOMEM; return -ENOMEM;
nla_strlcpy(priv->prefix, nla, nla_len(nla) + 1); nla_strscpy(priv->prefix, nla, nla_len(nla) + 1);
} else { } else {
priv->prefix = (char *)nft_log_null_prefix; priv->prefix = (char *)nft_log_null_prefix;
} }

View File

@ -95,7 +95,7 @@ static int netlbl_mgmt_add_common(struct genl_info *info,
ret_val = -ENOMEM; ret_val = -ENOMEM;
goto add_free_entry; goto add_free_entry;
} }
nla_strlcpy(entry->domain, nla_strscpy(entry->domain,
info->attrs[NLBL_MGMT_A_DOMAIN], tmp_size); info->attrs[NLBL_MGMT_A_DOMAIN], tmp_size);
} }

View File

@ -1226,7 +1226,7 @@ static int nfc_genl_fw_download(struct sk_buff *skb, struct genl_info *info)
if (!dev) if (!dev)
return -ENODEV; return -ENODEV;
nla_strlcpy(firmware_name, info->attrs[NFC_ATTR_FIRMWARE_NAME], nla_strscpy(firmware_name, info->attrs[NFC_ATTR_FIRMWARE_NAME],
sizeof(firmware_name)); sizeof(firmware_name));
rc = nfc_fw_download(dev, firmware_name); rc = nfc_fw_download(dev, firmware_name);

View File

@ -939,7 +939,7 @@ struct tc_action *tcf_action_init_1(struct net *net, struct tcf_proto *tp,
NL_SET_ERR_MSG(extack, "TC action kind must be specified"); NL_SET_ERR_MSG(extack, "TC action kind must be specified");
goto err_out; goto err_out;
} }
if (nla_strlcpy(act_name, kind, IFNAMSIZ) < 0) { if (nla_strscpy(act_name, kind, IFNAMSIZ) < 0) {
NL_SET_ERR_MSG(extack, "TC action name too long"); NL_SET_ERR_MSG(extack, "TC action name too long");
goto err_out; goto err_out;
} }

View File

@ -166,7 +166,7 @@ static int __tcf_ipt_init(struct net *net, unsigned int id, struct nlattr *nla,
if (unlikely(!tname)) if (unlikely(!tname))
goto err1; goto err1;
if (tb[TCA_IPT_TABLE] == NULL || if (tb[TCA_IPT_TABLE] == NULL ||
nla_strlcpy(tname, tb[TCA_IPT_TABLE], IFNAMSIZ) >= IFNAMSIZ) nla_strscpy(tname, tb[TCA_IPT_TABLE], IFNAMSIZ) >= IFNAMSIZ)
strcpy(tname, "mangle"); strcpy(tname, "mangle");
t = kmemdup(td, td->u.target_size, GFP_KERNEL); t = kmemdup(td, td->u.target_size, GFP_KERNEL);

View File

@ -52,7 +52,7 @@ static int alloc_defdata(struct tcf_defact *d, const struct nlattr *defdata)
d->tcfd_defdata = kzalloc(SIMP_MAX_DATA, GFP_KERNEL); d->tcfd_defdata = kzalloc(SIMP_MAX_DATA, GFP_KERNEL);
if (unlikely(!d->tcfd_defdata)) if (unlikely(!d->tcfd_defdata))
return -ENOMEM; return -ENOMEM;
nla_strlcpy(d->tcfd_defdata, defdata, SIMP_MAX_DATA); nla_strscpy(d->tcfd_defdata, defdata, SIMP_MAX_DATA);
return 0; return 0;
} }
@ -71,7 +71,7 @@ static int reset_policy(struct tc_action *a, const struct nlattr *defdata,
spin_lock_bh(&d->tcf_lock); spin_lock_bh(&d->tcf_lock);
goto_ch = tcf_action_set_ctrlact(a, p->action, goto_ch); goto_ch = tcf_action_set_ctrlact(a, p->action, goto_ch);
memset(d->tcfd_defdata, 0, SIMP_MAX_DATA); memset(d->tcfd_defdata, 0, SIMP_MAX_DATA);
nla_strlcpy(d->tcfd_defdata, defdata, SIMP_MAX_DATA); nla_strscpy(d->tcfd_defdata, defdata, SIMP_MAX_DATA);
spin_unlock_bh(&d->tcf_lock); spin_unlock_bh(&d->tcf_lock);
if (goto_ch) if (goto_ch)
tcf_chain_put_by_act(goto_ch); tcf_chain_put_by_act(goto_ch);

View File

@ -223,7 +223,7 @@ static inline u32 tcf_auto_prio(struct tcf_proto *tp)
static bool tcf_proto_check_kind(struct nlattr *kind, char *name) static bool tcf_proto_check_kind(struct nlattr *kind, char *name)
{ {
if (kind) if (kind)
return nla_strlcpy(name, kind, IFNAMSIZ) < 0; return nla_strscpy(name, kind, IFNAMSIZ) < 0;
memset(name, 0, IFNAMSIZ); memset(name, 0, IFNAMSIZ);
return false; return false;
} }

View File

@ -1170,7 +1170,7 @@ static struct Qdisc *qdisc_create(struct net_device *dev,
#ifdef CONFIG_MODULES #ifdef CONFIG_MODULES
if (ops == NULL && kind != NULL) { if (ops == NULL && kind != NULL) {
char name[IFNAMSIZ]; char name[IFNAMSIZ];
if (nla_strlcpy(name, kind, IFNAMSIZ) >= 0) { if (nla_strscpy(name, kind, IFNAMSIZ) >= 0) {
/* We dropped the RTNL semaphore in order to /* We dropped the RTNL semaphore in order to
* perform the module load. So, even if we * perform the module load. So, even if we
* succeeded in loading the module we have to * succeeded in loading the module we have to

View File

@ -696,7 +696,7 @@ static int tipc_nl_compat_link_dump(struct tipc_nl_compat_msg *msg,
link_info.dest = nla_get_flag(link[TIPC_NLA_LINK_DEST]); link_info.dest = nla_get_flag(link[TIPC_NLA_LINK_DEST]);
link_info.up = htonl(nla_get_flag(link[TIPC_NLA_LINK_UP])); link_info.up = htonl(nla_get_flag(link[TIPC_NLA_LINK_UP]));
nla_strlcpy(link_info.str, link[TIPC_NLA_LINK_NAME], nla_strscpy(link_info.str, link[TIPC_NLA_LINK_NAME],
TIPC_MAX_LINK_NAME); TIPC_MAX_LINK_NAME);
return tipc_add_tlv(msg->rep, TIPC_TLV_LINK_INFO, return tipc_add_tlv(msg->rep, TIPC_TLV_LINK_INFO,