- /* Copy the path in the absolute path */
- strncpy(absolute_path, path, PATH_MAX);
+ /*
+ * If the path is not already absolute nor explicitly relative,
+ * consider we're in the current directory
+ */
+ if (*path != '/' && strncmp(path, "./", 2) != 0 &&
+ strncmp(path, "../", 3) != 0) {
+ snprintf(absolute_path, PATH_MAX, "./%s", path);
+ /* Else, we just copy the path */
+ } else {
+ strncpy(absolute_path, path, PATH_MAX);
+ }
+
+ /* Resolve partially our path */
+ absolute_path = utils_partial_realpath(absolute_path,
+ absolute_path, PATH_MAX);