dm: use strnlen to replace strlen

Tracked-On: #2133
Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
Reviewed-by: Yonghua Huang <yonghua.huang@intel.com>
This commit is contained in:
Shuo A Liu 2018-12-25 10:33:36 +08:00 committed by wenlingz
parent ff2ed240a0
commit 0bb20c3812
14 changed files with 27 additions and 25 deletions

View File

@ -157,7 +157,7 @@ static int open_hugetlbfs(struct vmctx *ctx, int level)
UUID[12], UUID[13], UUID[14], UUID[15]); UUID[12], UUID[13], UUID[14], UUID[15]);
*(path + len) = '\0'; *(path + len) = '\0';
strncat(path, uuid_str, strlen(uuid_str)); strncat(path, uuid_str, strnlen(uuid_str, sizeof(uuid_str)));
printf("open hugetlbfs file %s\n", path); printf("open hugetlbfs file %s\n", path);
@ -347,19 +347,19 @@ static int create_hugetlb_dirs(int level)
} }
path = hugetlb_priv[level].mount_path; path = hugetlb_priv[level].mount_path;
len = strlen(path); len = strnlen(path, MAX_PATH_LEN);
if (len >= MAX_PATH_LEN || len == 0) { if (len == MAX_PATH_LEN || len == 0) {
perror("invalid path len"); perror("invalid path len");
return -EINVAL; return -EINVAL;
} }
memset(tmp_path, '\0', MAX_PATH_LEN); memset(tmp_path, '\0', MAX_PATH_LEN);
strncpy(tmp_path, path, MAX_PATH_LEN - 1); strncpy(tmp_path, path, MAX_PATH_LEN);
if ((tmp_path[len - 1] != '/') && (strlen(tmp_path) < MAX_PATH_LEN - 1)) if ((tmp_path[len - 1] != '/') && (len < MAX_PATH_LEN - 1))
strcat(tmp_path, "/"); tmp_path[len] = '/';
len = strlen(tmp_path); len = strnlen(tmp_path, MAX_PATH_LEN);
for (i = 1; i < len; i++) { for (i = 1; i < len; i++) {
if (tmp_path[i] == '/') { if (tmp_path[i] == '/') {
tmp_path[i] = 0; tmp_path[i] = 0;

View File

@ -165,8 +165,8 @@ usage(int code)
" --intr_monitor: enable interrupt storm monitor\n" " --intr_monitor: enable interrupt storm monitor\n"
" --vtpm2: Virtual TPM2 args: sock_path=$PATH_OF_SWTPM_SOCKET\n" " --vtpm2: Virtual TPM2 args: sock_path=$PATH_OF_SWTPM_SOCKET\n"
"............its params: threshold/s,probe-period(s),delay_time(ms),delay_duration(ms)\n", "............its params: threshold/s,probe-period(s),delay_time(ms),delay_duration(ms)\n",
progname, (int)strlen(progname), "", (int)strlen(progname), "", progname, (int)strnlen(progname, PATH_MAX), "", (int)strnlen(progname, PATH_MAX), "",
(int)strlen(progname), ""); (int)strnlen(progname, PATH_MAX), "");
exit(code); exit(code);
} }

View File

@ -544,7 +544,7 @@ smbios_generic_initializer(struct smbios_structure *template_entry,
int len; int len;
string = template_strings[i]; string = template_strings[i];
len = strlen(string) + 1; len = strnlen(string, SMBIOS_MAX_LENGTH) + 1;
memcpy(curaddr, string, len); memcpy(curaddr, string, len);
curaddr += len; curaddr += len;
} }
@ -597,7 +597,7 @@ smbios_type1_initializer(struct smbios_structure *template_entry,
return -1; return -1;
MD5_Init(&mdctx); MD5_Init(&mdctx);
MD5_Update(&mdctx, vmname, strlen(vmname)); MD5_Update(&mdctx, vmname, strnlen(vmname, PATH_MAX));
MD5_Update(&mdctx, hostname, sizeof(hostname)); MD5_Update(&mdctx, hostname, sizeof(hostname));
MD5_Final(digest, &mdctx); MD5_Final(digest, &mdctx);

View File

@ -129,7 +129,7 @@ acrn_get_bzimage_setup_size(struct vmctx *ctx)
int int
acrn_parse_kernel(char *arg) acrn_parse_kernel(char *arg)
{ {
size_t len = strlen(arg); size_t len = strnlen(arg, STR_LEN);
if (len < STR_LEN) { if (len < STR_LEN) {
strncpy(kernel_path, arg, len + 1); strncpy(kernel_path, arg, len + 1);
@ -150,7 +150,7 @@ acrn_parse_kernel(char *arg)
int int
acrn_parse_ramdisk(char *arg) acrn_parse_ramdisk(char *arg)
{ {
size_t len = strlen(arg); size_t len = strnlen(arg, STR_LEN);
if (len < STR_LEN) { if (len < STR_LEN) {
strncpy(ramdisk_path, arg, len + 1); strncpy(ramdisk_path, arg, len + 1);

View File

@ -99,7 +99,7 @@ const struct e820_entry e820_default_entries[NUM_E820_ENTRIES] = {
int int
acrn_parse_bootargs(char *arg) acrn_parse_bootargs(char *arg)
{ {
size_t len = strlen(arg); size_t len = strnlen(arg, STR_LEN);
if (len < STR_LEN) { if (len < STR_LEN) {
strncpy(bootargs, arg, len + 1); strncpy(bootargs, arg, len + 1);

View File

@ -70,7 +70,7 @@ int
acrn_parse_ovmf(char *arg) acrn_parse_ovmf(char *arg)
{ {
int error; int error;
size_t len = strlen(arg); size_t len = strnlen(arg, STR_LEN);
if (len < STR_LEN) { if (len < STR_LEN) {
strncpy(ovmf_path, arg, len + 1); strncpy(ovmf_path, arg, len + 1);

View File

@ -126,7 +126,7 @@ int
acrn_parse_guest_part_info(char *arg) acrn_parse_guest_part_info(char *arg)
{ {
int error; int error;
size_t len = strlen(arg); size_t len = strnlen(arg, STR_LEN);
if (len < STR_LEN) { if (len < STR_LEN) {
strncpy(guest_part_info_path, arg, len + 1); strncpy(guest_part_info_path, arg, len + 1);
@ -195,7 +195,7 @@ int
acrn_parse_vsbl(char *arg) acrn_parse_vsbl(char *arg)
{ {
int error; int error;
size_t len = strlen(arg); size_t len = strnlen(arg, STR_LEN);
if (len < STR_LEN) { if (len < STR_LEN) {
strncpy(vsbl_path, arg, len + 1); strncpy(vsbl_path, arg, len + 1);

View File

@ -93,7 +93,7 @@ vm_create(const char *name, uint64_t req_buf)
uuid_t vm_uuid; uuid_t vm_uuid;
memset(&create_vm, 0, sizeof(struct acrn_create_vm)); memset(&create_vm, 0, sizeof(struct acrn_create_vm));
ctx = calloc(1, sizeof(struct vmctx) + strlen(name) + 1); ctx = calloc(1, sizeof(struct vmctx) + strnlen(name, PATH_MAX) + 1);
assert(ctx != NULL); assert(ctx != NULL);
assert(devfd == -1); assert(devfd == -1);

View File

@ -823,7 +823,7 @@ virtio_net_init(struct vmctx *ctx, struct pci_vdev *dev, char *opts)
dev->func, mac_seed); dev->func, mac_seed);
MD5_Init(&mdctx); MD5_Init(&mdctx);
MD5_Update(&mdctx, nstr, strlen(nstr)); MD5_Update(&mdctx, nstr, strnlen(nstr, sizeof(nstr)));
MD5_Final(digest, &mdctx); MD5_Final(digest, &mdctx);
net->config.mac[0] = 0x00; net->config.mac[0] = 0x00;

View File

@ -501,6 +501,7 @@ static int pci_xhci_parse_log_level(struct pci_xhci_vdev *xdev, char *opts);
static int pci_xhci_parse_extcap(struct pci_xhci_vdev *xdev, char *opts); static int pci_xhci_parse_extcap(struct pci_xhci_vdev *xdev, char *opts);
static int pci_xhci_convert_speed(int lspeed); static int pci_xhci_convert_speed(int lspeed);
#define XHCI_OPT_MAX_LEN 32
static struct pci_xhci_option_elem xhci_option_table[] = { static struct pci_xhci_option_elem xhci_option_table[] = {
{"tablet", pci_xhci_parse_tablet}, {"tablet", pci_xhci_parse_tablet},
{"log", pci_xhci_parse_log_level}, {"log", pci_xhci_parse_log_level},
@ -3985,7 +3986,7 @@ pci_xhci_parse_opts(struct pci_xhci_vdev *xdev, char *opts)
if (!n || !f) if (!n || !f)
continue; continue;
if (!strncmp(t, n, strlen(n))) { if (!strncmp(t, n, strnlen(n, XHCI_OPT_MAX_LEN))) {
f(xdev, t); f(xdev, t);
break; break;
} }

View File

@ -205,7 +205,7 @@ static int rpmb_check_frame(const char *cmd_str, int *err,
return -1; return -1;
} }
len = strlen(cmd_str) + 1; len = strnlen(cmd_str, sizeof(WRITE_DATA_STR)) + 1;
if (len > sizeof(WRITE_DATA_STR)) if (len > sizeof(WRITE_DATA_STR))
len = sizeof(WRITE_DATA_STR); len = sizeof(WRITE_DATA_STR);

View File

@ -37,9 +37,9 @@ char *const token[] = {
int acrn_parse_vtpm2(char *arg) int acrn_parse_vtpm2(char *arg)
{ {
char *value; char *value;
size_t len = strlen(arg); size_t len = strnlen(arg, STR_MAX_LEN);
if (len > STR_MAX_LEN) if (len == STR_MAX_LEN)
return -1; return -1;
if (SOCK_PATH_OPT == getsubopt(&arg, token, &value)) { if (SOCK_PATH_OPT == getsubopt(&arg, token, &value)) {

View File

@ -217,7 +217,7 @@ static int ctrl_chan_conn(const char *servername)
return -1; return -1;
} }
if (strlen(servername) > (sizeof(servaddr.sun_path) -1)) { if (strnlen(servername, sizeof(servaddr.sun_path)) == (sizeof(servaddr.sun_path))) {
printf("%s error, length of servername is too long\n", __func__); printf("%s error, length of servername is too long\n", __func__);
return -1; return -1;
} }

View File

@ -59,6 +59,7 @@ enum {
UMSTR_MAX UMSTR_MAX
}; };
#define UMOUSE_DESC_MAX_LEN 32
static const char *const umouse_desc_strings[] = { static const char *const umouse_desc_strings[] = {
"\x04\x09", "\x04\x09",
"ACRN-DM", "ACRN-DM",
@ -437,7 +438,7 @@ umouse_request(void *scarg, struct usb_data_xfer *xfer)
goto done; goto done;
} }
slen = 2 + strlen(str) * 2; slen = 2 + strnlen(str, UMOUSE_DESC_MAX_LEN) * 2;
udata[0] = slen; udata[0] = slen;
udata[1] = UDESC_STRING; udata[1] = UDESC_STRING;