* commit 'f987398723b06538821162dadde7d7d2c9e0fb29': Allow more characters in partition name links
This commit is contained in:
commit
8c4b153911
2 changed files with 18 additions and 3 deletions
|
|
@ -451,6 +451,8 @@ static char **parse_platform_block_device(struct uevent *uevent)
|
||||||
if (uevent->partition_name) {
|
if (uevent->partition_name) {
|
||||||
p = strdup(uevent->partition_name);
|
p = strdup(uevent->partition_name);
|
||||||
sanitize(p);
|
sanitize(p);
|
||||||
|
if (strcmp(uevent->partition_name, p))
|
||||||
|
NOTICE("Linking partition '%s' as '%s'\n", uevent->partition_name, p);
|
||||||
if (asprintf(&links[link_num], "%s/by-name/%s", link_path, p) > 0)
|
if (asprintf(&links[link_num], "%s/by-name/%s", link_path, p) > 0)
|
||||||
link_num++;
|
link_num++;
|
||||||
else
|
else
|
||||||
|
|
|
||||||
19
init/util.c
19
init/util.c
|
|
@ -305,14 +305,27 @@ int mkdir_recursive(const char *pathname, mode_t mode)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* replaces any unacceptable characters with '_', the
|
||||||
|
* length of the resulting string is equal to the input string
|
||||||
|
*/
|
||||||
void sanitize(char *s)
|
void sanitize(char *s)
|
||||||
{
|
{
|
||||||
|
const char* accept =
|
||||||
|
"abcdefghijklmnopqrstuvwxyz"
|
||||||
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
"0123456789"
|
||||||
|
"_-.";
|
||||||
|
|
||||||
if (!s)
|
if (!s)
|
||||||
return;
|
return;
|
||||||
while (isalnum(*s))
|
|
||||||
s++;
|
for (; *s; s++) {
|
||||||
*s = 0;
|
s += strspn(s, accept);
|
||||||
|
if (*s) *s = '_';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void make_link(const char *oldpath, const char *newpath)
|
void make_link(const char *oldpath, const char *newpath)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue