提交 2bd7318c 编写于 作者: B blueswir1

Replace uses of strndup (a GNU extension) with Qemu pstrdup

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5532 c046a42c-6fe2-441c-8c8c-71466251a162
上级 be15b141
...@@ -50,6 +50,18 @@ char *pstrcat(char *buf, int buf_size, const char *s) ...@@ -50,6 +50,18 @@ char *pstrcat(char *buf, int buf_size, const char *s)
return buf; return buf;
} }
/* strdup with a limit */
char *pstrdup(const char *str, size_t buf_size)
{
size_t len;
char *buf;
len = MIN(buf_size, strlen(str));
buf = qemu_malloc(len);
pstrcpy(buf, len, str);
return buf;
}
int strstart(const char *str, const char *val, const char **ptr) int strstart(const char *str, const char *val, const char **ptr)
{ {
const char *p, *q; const char *p, *q;
......
...@@ -1814,7 +1814,7 @@ static void bt_submit_hci(struct HCIInfo *info, ...@@ -1814,7 +1814,7 @@ static void bt_submit_hci(struct HCIInfo *info,
if (hci->device.lmp_name) if (hci->device.lmp_name)
free((void *) hci->device.lmp_name); free((void *) hci->device.lmp_name);
hci->device.lmp_name = strndup(PARAM(change_local_name, name), hci->device.lmp_name = pstrdup(PARAM(change_local_name, name),
sizeof(PARAM(change_local_name, name))); sizeof(PARAM(change_local_name, name)));
bt_hci_event_complete_status(hci, HCI_SUCCESS); bt_hci_event_complete_status(hci, HCI_SUCCESS);
break; break;
......
...@@ -82,6 +82,7 @@ int qemu_timedate_diff(struct tm *tm); ...@@ -82,6 +82,7 @@ int qemu_timedate_diff(struct tm *tm);
/* cutils.c */ /* cutils.c */
void pstrcpy(char *buf, int buf_size, const char *str); void pstrcpy(char *buf, int buf_size, const char *str);
char *pstrcat(char *buf, int buf_size, const char *s); char *pstrcat(char *buf, int buf_size, const char *s);
char *pstrdup(const char *str, size_t buf_size);
int strstart(const char *str, const char *val, const char **ptr); int strstart(const char *str, const char *val, const char **ptr);
int stristart(const char *str, const char *val, const char **ptr); int stristart(const char *str, const char *val, const char **ptr);
time_t mktimegm(struct tm *tm); time_t mktimegm(struct tm *tm);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册