- if (*s == '/' || *s == '.') {
- if (!libc.secure) map = __map_file(s, &map_size);
- } else {
- for (i=0; s[i] && s[i]!=','; i++) {
- if (s[i]=='/') {
- size_t l = strlen(s);
- if (l > NAME_MAX || strchr(s, '.'))
- break;
+ if (*s == ':' || ((p=strchr(s, '/')) && !memchr(s, ',', p-s))) {
+ if (*s == ':') s++;
+ if (*s == '/' || *s == '.') {
+ if (!libc.secure || !strcmp(s, "/etc/localtime"))
+ map = __map_file(s, &map_size);
+ } else {
+ size_t l = strlen(s);
+ if (l <= NAME_MAX && !strchr(s, '.')) {