Replace uses of strncpy (a GNU extension) with Qemu pstrcpy
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5531 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/block-vmdk.c b/block-vmdk.c
index c49b671..2a257b6 100644
--- a/block-vmdk.c
+++ b/block-vmdk.c
@@ -344,7 +344,7 @@
if ((end_name - p_name) > sizeof (s->hd->backing_file) - 1)
return -1;
- strncpy(s->hd->backing_file, p_name, end_name - p_name);
+ pstrcpy(s->hd->backing_file, end_name - p_name, p_name);
if (stat(s->hd->backing_file, &file_buf) != 0) {
path_combine(parent_img_name, sizeof(parent_img_name),
filename, s->hd->backing_file);
diff --git a/block-vvfat.c b/block-vvfat.c
index 79804a7..1db2c8c 100644
--- a/block-vvfat.c
+++ b/block-vvfat.c
@@ -625,7 +625,7 @@
entry=array_get_next(&(s->directory));
memset(entry->name,0x20,11);
- strncpy((char*)entry->name,filename,i);
+ pstrcpy((char*)entry->name, i, filename);
if(j > 0)
for (i = 0; i < 3 && filename[j+1+i]; i++)
diff --git a/hw/bt-hci.c b/hw/bt-hci.c
index 725e32c..714e726 100644
--- a/hw/bt-hci.c
+++ b/hw/bt-hci.c
@@ -1385,7 +1385,7 @@
params.status = HCI_SUCCESS;
memset(params.name, 0, sizeof(params.name));
if (hci->device.lmp_name)
- strncpy(params.name, hci->device.lmp_name, sizeof(params.name));
+ pstrcpy(params.name, sizeof(params.name), hci->device.lmp_name);
bt_hci_event_complete(hci, ¶ms, READ_LOCAL_NAME_RP_SIZE);
}
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index c1301ee..29254a2 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -4993,7 +4993,7 @@
if (tnamelen > 256)
tnamelen = 256;
/* XXX: may not be correct */
- strncpy(tde->d_name, de->d_name, tnamelen);
+ pstrcpy(tde->d_name, tnamelen, de->d_name);
de = (struct linux_dirent *)((char *)de + reclen);
len -= reclen;
tde = (struct target_dirent *)((char *)tde + treclen);
diff --git a/slirp/udp.c b/slirp/udp.c
index 0583d7e..8030326 100644
--- a/slirp/udp.c
+++ b/slirp/udp.c
@@ -475,14 +475,14 @@
type = omsg->type;
OTOSIN(omsg, ctl_addr)->sin_port = addr.sin_port;
OTOSIN(omsg, ctl_addr)->sin_addr = our_addr;
- strncpy(omsg->l_name, getlogin(), NAME_SIZE_OLD);
+ pstrcpy(omsg->l_name, NAME_SIZE_OLD, getlogin());
} else { /* new talk */
omsg = (CTL_MSG_OLD *) buff;
nmsg = mtod(m, CTL_MSG *);
type = nmsg->type;
OTOSIN(nmsg, ctl_addr)->sin_port = addr.sin_port;
OTOSIN(nmsg, ctl_addr)->sin_addr = our_addr;
- strncpy(nmsg->l_name, getlogin(), NAME_SIZE_OLD);
+ pstrcpy(nmsg->l_name, NAME_SIZE_OLD, getlogin());
}
if (type == LOOK_UP)
diff --git a/vl.c b/vl.c
index 1fb4749..b96735e 100644
--- a/vl.c
+++ b/vl.c
@@ -4446,7 +4446,7 @@
syslog(LOG_ERR, "Can't get flags\n");
snprintf (actual_name, 32, "tap%d", ppa);
- strncpy (ifr.lifr_name, actual_name, sizeof (ifr.lifr_name));
+ pstrcpy(ifr.lifr_name, sizeof(ifr.lifr_name), actual_name);
ifr.lifr_ppa = ppa;
/* Assign ppa according to the unit number returned by tun device */
@@ -4489,7 +4489,7 @@
close (if_fd);
memset(&ifr, 0x0, sizeof(ifr));
- strncpy (ifr.lifr_name, actual_name, sizeof (ifr.lifr_name));
+ pstrcpy(ifr.lifr_name, sizeof(ifr.lifr_name), actual_name);
ifr.lifr_ip_muxid = ip_muxid;
ifr.lifr_arp_muxid = arp_muxid;
diff --git a/vnc.c b/vnc.c
index 266460f..9df4dbe 100644
--- a/vnc.c
+++ b/vnc.c
@@ -2337,7 +2337,8 @@
if (start && (!end || (start < end))) {
int len = end ? end-(start+1) : strlen(start+1);
char *path = qemu_malloc(len+1);
- strncpy(path, start+1, len);
+
+ pstrcpy(path, len, start + 1);
path[len] = '\0';
VNC_DEBUG("Trying certificate path '%s'\n", path);
if (vnc_set_x509_credential_dir(vs, path) < 0) {