提交 3dc2fa47 编写于 作者: X Xiongfeng Wang 提交者: David S. Miller

net: caif: use strlcpy() instead of strncpy()

gcc-8 reports

net/caif/caif_dev.c: In function 'caif_enroll_dev':
./include/linux/string.h:245:9: warning: '__builtin_strncpy' output may
be truncated copying 15 bytes from a string of length 15
[-Wstringop-truncation]

net/caif/cfctrl.c: In function 'cfctrl_linkup_request':
./include/linux/string.h:245:9: warning: '__builtin_strncpy' output may
be truncated copying 15 bytes from a string of length 15
[-Wstringop-truncation]

net/caif/cfcnfg.c: In function 'caif_connect_client':
./include/linux/string.h:245:9: warning: '__builtin_strncpy' output may
be truncated copying 15 bytes from a string of length 15
[-Wstringop-truncation]

The compiler require that the input param 'len' of strncpy() should be
greater than the length of the src string, so that '\0' is copied as
well. We can just use strlcpy() to avoid this warning.
Signed-off-by: NXiongfeng Wang <xiongfeng.wang@linaro.org>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 b8fd0823
...@@ -334,9 +334,8 @@ void caif_enroll_dev(struct net_device *dev, struct caif_dev_common *caifdev, ...@@ -334,9 +334,8 @@ void caif_enroll_dev(struct net_device *dev, struct caif_dev_common *caifdev,
mutex_lock(&caifdevs->lock); mutex_lock(&caifdevs->lock);
list_add_rcu(&caifd->list, &caifdevs->list); list_add_rcu(&caifd->list, &caifdevs->list);
strncpy(caifd->layer.name, dev->name, strlcpy(caifd->layer.name, dev->name,
sizeof(caifd->layer.name) - 1); sizeof(caifd->layer.name));
caifd->layer.name[sizeof(caifd->layer.name) - 1] = 0;
caifd->layer.transmit = transmit; caifd->layer.transmit = transmit;
cfcnfg_add_phy_layer(cfg, cfcnfg_add_phy_layer(cfg,
dev, dev,
......
...@@ -268,17 +268,15 @@ static int caif_connect_req_to_link_param(struct cfcnfg *cnfg, ...@@ -268,17 +268,15 @@ static int caif_connect_req_to_link_param(struct cfcnfg *cnfg,
case CAIFPROTO_RFM: case CAIFPROTO_RFM:
l->linktype = CFCTRL_SRV_RFM; l->linktype = CFCTRL_SRV_RFM;
l->u.datagram.connid = s->sockaddr.u.rfm.connection_id; l->u.datagram.connid = s->sockaddr.u.rfm.connection_id;
strncpy(l->u.rfm.volume, s->sockaddr.u.rfm.volume, strlcpy(l->u.rfm.volume, s->sockaddr.u.rfm.volume,
sizeof(l->u.rfm.volume)-1); sizeof(l->u.rfm.volume));
l->u.rfm.volume[sizeof(l->u.rfm.volume)-1] = 0;
break; break;
case CAIFPROTO_UTIL: case CAIFPROTO_UTIL:
l->linktype = CFCTRL_SRV_UTIL; l->linktype = CFCTRL_SRV_UTIL;
l->endpoint = 0x00; l->endpoint = 0x00;
l->chtype = 0x00; l->chtype = 0x00;
strncpy(l->u.utility.name, s->sockaddr.u.util.service, strlcpy(l->u.utility.name, s->sockaddr.u.util.service,
sizeof(l->u.utility.name)-1); sizeof(l->u.utility.name));
l->u.utility.name[sizeof(l->u.utility.name)-1] = 0;
caif_assert(sizeof(l->u.utility.name) > 10); caif_assert(sizeof(l->u.utility.name) > 10);
l->u.utility.paramlen = s->param.size; l->u.utility.paramlen = s->param.size;
if (l->u.utility.paramlen > sizeof(l->u.utility.params)) if (l->u.utility.paramlen > sizeof(l->u.utility.params))
......
...@@ -258,8 +258,8 @@ int cfctrl_linkup_request(struct cflayer *layer, ...@@ -258,8 +258,8 @@ int cfctrl_linkup_request(struct cflayer *layer,
tmp16 = cpu_to_le16(param->u.utility.fifosize_bufs); tmp16 = cpu_to_le16(param->u.utility.fifosize_bufs);
cfpkt_add_body(pkt, &tmp16, 2); cfpkt_add_body(pkt, &tmp16, 2);
memset(utility_name, 0, sizeof(utility_name)); memset(utility_name, 0, sizeof(utility_name));
strncpy(utility_name, param->u.utility.name, strlcpy(utility_name, param->u.utility.name,
UTILITY_NAME_LENGTH - 1); UTILITY_NAME_LENGTH);
cfpkt_add_body(pkt, utility_name, UTILITY_NAME_LENGTH); cfpkt_add_body(pkt, utility_name, UTILITY_NAME_LENGTH);
tmp8 = param->u.utility.paramlen; tmp8 = param->u.utility.paramlen;
cfpkt_add_body(pkt, &tmp8, 1); cfpkt_add_body(pkt, &tmp8, 1);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册