-static char *resolve_fragment(const char *fragment, const char **search_paths) {
- const char **p;
- char *resolved_path;
-
- if (is_path(fragment))
- return strdup(fragment);
-
- STRV_FOREACH(p, search_paths) {
- resolved_path = strjoin(*p, "/", fragment, NULL);
- if (resolved_path == NULL) {
- log_oom();
- return NULL;
- }
-
- if (access(resolved_path, F_OK) == 0)
- return resolved_path;
-
- free(resolved_path);
- }
-
- errno = ENOENT;
- return NULL;
-}
-