replace strncpy() with strlcpy()

The problem was strncpy() doesn't stop after writing the terminating
NUL; by definition it goes on to zero the entire buffer.

I spy another use of strncpy in udev_device_add_property_from_string(),
which is responsible for another ~1% user cpu time...

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
This commit is contained in:
Alan Jenkins
2008-10-21 23:55:13 +02:00
committed by Kay Sievers
parent 9a23e9e775
commit 111e4f81ff
2 changed files with 5 additions and 9 deletions
+4 -8
View File
@@ -135,8 +135,7 @@ static void set_type(char *to, const char *from, size_t len)
break;
}
}
strncpy(to, type, len);
to[len-1] = '\0';
util_strlcpy(to, type, len);
}
/*
@@ -385,8 +384,7 @@ static int set_options(struct udev *udev,
case 'd':
dev_specified = 1;
strncpy(maj_min_dev, optarg, MAX_PATH_LEN);
maj_min_dev[MAX_PATH_LEN-1] = '\0';
util_strlcpy(maj_min_dev, optarg, MAX_PATH_LEN);
break;
case 'e':
@@ -394,8 +392,7 @@ static int set_options(struct udev *udev,
break;
case 'f':
strncpy(config_file, optarg, MAX_PATH_LEN);
config_file[MAX_PATH_LEN-1] = '\0';
util_strlcpy(config_file, optarg, MAX_PATH_LEN);
break;
case 'g':
@@ -461,8 +458,7 @@ static int set_options(struct udev *udev,
}
if (optind < argc && !dev_specified) {
dev_specified = 1;
strncpy(maj_min_dev, argv[optind], MAX_PATH_LEN);
maj_min_dev[MAX_PATH_LEN-1] = '\0';
util_strlcpy(maj_min_dev, argv[optind], MAX_PATH_LEN);
}
return 0;
}
+1 -1
View File
@@ -1001,7 +1001,7 @@ struct udev_list_entry *udev_device_add_property_from_string(struct udev_device
char name[UTIL_PATH_SIZE];
char *val;
strncpy(name, property, sizeof(name));
util_strlcpy(name, property, sizeof(name));
val = strchr(name, '=');
if (val == NULL)
return NULL;