summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/shared/install.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/shared/install.c b/src/shared/install.c
index 3d48f612f3..3289b51f41 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -85,25 +85,27 @@ static int in_search_path(const LookupPaths *p, const char *path) {
}
static const char* skip_root(const LookupPaths *p, const char *path) {
- if (p->root_dir) {
- char *e;
+ char *e;
- e = path_startswith(path, p->root_dir);
- if (!e)
- return NULL;
+ assert(p);
+ assert(path);
- /* Make sure the returned path starts with a slash */
- if (e[0] != '/') {
- if (e == path || e[-1] != '/')
- return NULL;
+ if (!p->root_dir)
+ return path;
- e--;
- }
+ e = path_startswith(path, p->root_dir);
+ if (!e)
+ return NULL;
+
+ /* Make sure the returned path starts with a slash */
+ if (e[0] != '/') {
+ if (e == path || e[-1] != '/')
+ return NULL;
- return e;
+ e--;
}
- return path;
+ return e;
}
static int path_is_generator(const LookupPaths *p, const char *path) {