Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging/wlan-ng: Remove all strcpy() uses in favor of strscpy()

strcpy() performs no bounds checking on the destination buffer. This
could result in linear overflows beyond the end of the buffer, leading
to all kinds of misbehaviors. The safe replacement is strscpy().

Signed-off-by: Len Baker <len.baker@gmx.com>
Link: https://lore.kernel.org/r/20210717152032.10164-1-len.baker@gmx.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Len Baker and committed by
Greg Kroah-Hartman
c10fe0cc fa8db398

+4 -4
+4 -4
drivers/staging/wlan-ng/prism2fw.c
··· 296 296 memset(&getmsg, 0, sizeof(getmsg)); 297 297 getmsg.msgcode = DIDMSG_DOT11REQ_MIBGET; 298 298 getmsg.msglen = sizeof(getmsg); 299 - strcpy(getmsg.devname, wlandev->name); 299 + strscpy(getmsg.devname, wlandev->name, sizeof(getmsg.devname)); 300 300 301 301 getmsg.mibattribute.did = DIDMSG_DOT11REQ_MIBGET_MIBATTRIBUTE; 302 302 getmsg.mibattribute.status = P80211ENUM_msgitem_status_data_ok; ··· 786 786 /* set up the msg */ 787 787 msg->msgcode = DIDMSG_P2REQ_READPDA; 788 788 msg->msglen = sizeof(msg); 789 - strcpy(msg->devname, wlandev->name); 789 + strscpy(msg->devname, wlandev->name, sizeof(msg->devname)); 790 790 msg->pda.did = DIDMSG_P2REQ_READPDA_PDA; 791 791 msg->pda.len = HFA384x_PDA_LEN_MAX; 792 792 msg->pda.status = P80211ENUM_msgitem_status_no_value; ··· 1017 1017 } 1018 1018 1019 1019 /* Initialize the messages */ 1020 - strcpy(rstmsg->devname, wlandev->name); 1020 + strscpy(rstmsg->devname, wlandev->name, sizeof(rstmsg->devname)); 1021 1021 rstmsg->msgcode = DIDMSG_P2REQ_RAMDL_STATE; 1022 1022 rstmsg->msglen = sizeof(*rstmsg); 1023 1023 rstmsg->enable.did = DIDMSG_P2REQ_RAMDL_STATE_ENABLE; ··· 1030 1030 rstmsg->exeaddr.len = sizeof(u32); 1031 1031 rstmsg->resultcode.len = sizeof(u32); 1032 1032 1033 - strcpy(rwrmsg->devname, wlandev->name); 1033 + strscpy(rwrmsg->devname, wlandev->name, sizeof(rwrmsg->devname)); 1034 1034 rwrmsg->msgcode = DIDMSG_P2REQ_RAMDL_WRITE; 1035 1035 rwrmsg->msglen = sizeof(*rwrmsg); 1036 1036 rwrmsg->addr.did = DIDMSG_P2REQ_RAMDL_WRITE_ADDR;