diff options
author | Colin Cross <ccross@android.com> | 2013-07-22 15:40:55 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-07-22 15:40:55 -0700 |
commit | f987398723b06538821162dadde7d7d2c9e0fb29 (patch) | |
tree | 121c0217b10ad91b8de28dcdbb021e02f1518300 /init | |
parent | a570312a56938f6ebfcadc3ec9830ab8a2407654 (diff) | |
parent | 5954ecb87b8c77425d8cc766c0cc798957a07a7d (diff) | |
download | system_core-f987398723b06538821162dadde7d7d2c9e0fb29.zip system_core-f987398723b06538821162dadde7d7d2c9e0fb29.tar.gz system_core-f987398723b06538821162dadde7d7d2c9e0fb29.tar.bz2 |
am 5954ecb8: Merge "Allow more characters in partition name links"
* commit '5954ecb87b8c77425d8cc766c0cc798957a07a7d':
Allow more characters in partition name links
Diffstat (limited to 'init')
-rw-r--r-- | init/devices.c | 2 | ||||
-rwxr-xr-x | init/util.c | 19 |
2 files changed, 18 insertions, 3 deletions
diff --git a/init/devices.c b/init/devices.c index de27a7a..1893642 100644 --- a/init/devices.c +++ b/init/devices.c @@ -451,6 +451,8 @@ static char **parse_platform_block_device(struct uevent *uevent) if (uevent->partition_name) { p = strdup(uevent->partition_name); 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) link_num++; else diff --git a/init/util.c b/init/util.c index 918bc05..76af9e5 100755 --- a/init/util.c +++ b/init/util.c @@ -305,14 +305,27 @@ int mkdir_recursive(const char *pathname, mode_t mode) return 0; } +/* + * replaces any unacceptable characters with '_', the + * length of the resulting string is equal to the input string + */ void sanitize(char *s) { + const char* accept = + "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789" + "_-."; + if (!s) return; - while (isalnum(*s)) - s++; - *s = 0; + + for (; *s; s++) { + s += strspn(s, accept); + if (*s) *s = '_'; + } } + void make_link(const char *oldpath, const char *newpath) { int ret; |