mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-23 05:57:33 +00:00
dm: use strncpy to replace strcpy
Use strncpy instead of strcpy to avoid buf overflow. Fix strncpy null-terminated issues. Tracked-On: #3245 Signed-off-by: Tianhua Sun <tianhuax.s.sun@intel.com> Acked-by: Anthony Xu <anthony.xu@intel.com>
This commit is contained in:
parent
0ea788b48e
commit
1e1244c36b
@ -121,6 +121,7 @@ virtio_audio_kernel_dev_set(struct vbs_dev_info *kdev, const char *name,
|
|||||||
{
|
{
|
||||||
/* init kdev */
|
/* init kdev */
|
||||||
strncpy(kdev->name, name, VBS_NAME_LEN);
|
strncpy(kdev->name, name, VBS_NAME_LEN);
|
||||||
|
kdev->name[VBS_NAME_LEN - 1] = '\0';
|
||||||
kdev->vmid = vmid;
|
kdev->vmid = vmid;
|
||||||
kdev->nvq = nvq;
|
kdev->nvq = nvq;
|
||||||
kdev->negotiated_features = feature;
|
kdev->negotiated_features = feature;
|
||||||
|
@ -625,7 +625,8 @@ virtio_console_accept_new_connection(int fd __attribute__((unused)),
|
|||||||
|
|
||||||
memset(&addr, 0, sizeof(addr));
|
memset(&addr, 0, sizeof(addr));
|
||||||
addr.sun_family = AF_UNIX;
|
addr.sun_family = AF_UNIX;
|
||||||
strcpy(addr.sun_path, be->portpath);
|
strncpy(addr.sun_path, be->portpath, sizeof(addr.sun_path));
|
||||||
|
addr.sun_path[sizeof(addr.sun_path) - 1] = '\0';
|
||||||
|
|
||||||
len = sizeof(addr);
|
len = sizeof(addr);
|
||||||
accepted_fd = accept(be->fd, (struct sockaddr *)&addr, &len);
|
accepted_fd = accept(be->fd, (struct sockaddr *)&addr, &len);
|
||||||
@ -728,7 +729,8 @@ virtio_console_config_backend(struct virtio_console_backend *be)
|
|||||||
|
|
||||||
memset(&addr, 0, sizeof(addr));
|
memset(&addr, 0, sizeof(addr));
|
||||||
addr.sun_family = AF_UNIX;
|
addr.sun_family = AF_UNIX;
|
||||||
strcpy(addr.sun_path, be->portpath);
|
strncpy(addr.sun_path, be->portpath, sizeof(addr.sun_path));
|
||||||
|
addr.sun_path[sizeof(addr.sun_path) - 1] = '\0';
|
||||||
|
|
||||||
if (be->socket_type == NULL || !strcmp(be->socket_type,"server")) {
|
if (be->socket_type == NULL || !strcmp(be->socket_type,"server")) {
|
||||||
unlink(be->portpath);
|
unlink(be->portpath);
|
||||||
|
@ -116,6 +116,7 @@ virtio_hyper_dmabuf_k_dev_set(const char *name, int vmid, int nvq,
|
|||||||
{
|
{
|
||||||
/* init kdev */
|
/* init kdev */
|
||||||
strncpy(kdev.name, name, VBS_NAME_LEN);
|
strncpy(kdev.name, name, VBS_NAME_LEN);
|
||||||
|
kdev.name[VBS_NAME_LEN - 1] = '\0';
|
||||||
kdev.vmid = vmid;
|
kdev.vmid = vmid;
|
||||||
kdev.nvq = nvq;
|
kdev.nvq = nvq;
|
||||||
kdev.negotiated_features = feature;
|
kdev.negotiated_features = feature;
|
||||||
|
@ -652,8 +652,10 @@ virtio_net_tap_open(char *devname)
|
|||||||
memset(&ifr, 0, sizeof(ifr));
|
memset(&ifr, 0, sizeof(ifr));
|
||||||
ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
|
ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
|
||||||
|
|
||||||
if (*devname)
|
if (*devname) {
|
||||||
strncpy(ifr.ifr_name, devname, IFNAMSIZ);
|
strncpy(ifr.ifr_name, devname, IFNAMSIZ);
|
||||||
|
ifr.ifr_name[IFNAMSIZ - 1] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
rc = ioctl(tunfd, TUNSETIFF, (void *)&ifr);
|
rc = ioctl(tunfd, TUNSETIFF, (void *)&ifr);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
|
@ -217,6 +217,7 @@ virtio_rnd_kernel_dev_set(struct vbs_dev_info *kdev, const char *name,
|
|||||||
|
|
||||||
/* init kdev */
|
/* init kdev */
|
||||||
strncpy(kdev->name, name, VBS_NAME_LEN);
|
strncpy(kdev->name, name, VBS_NAME_LEN);
|
||||||
|
kdev->name[VBS_NAME_LEN - 1] = '\0';
|
||||||
kdev->vmid = vmid;
|
kdev->vmid = vmid;
|
||||||
kdev->nvq = nvq;
|
kdev->nvq = nvq;
|
||||||
kdev->negotiated_features = feature;
|
kdev->negotiated_features = feature;
|
||||||
|
Loading…
Reference in New Issue
Block a user