#include <grp.h>
#include <pwd.h>
#include <sys/file.h>
-#include <dirent.h>
#include <common/common.h>
#include <common/runas.h>
#include <common/compat/getenv.h>
#include <common/compat/string.h>
+#include <common/compat/dirent.h>
+#include <lttng/constant.h>
#include "utils.h"
#include "defaults.h"
/* Resolve the canonical path of the first part of the path */
while (try_path != NULL && next != end) {
+ char *try_path_buf = NULL;
+
/*
* If there is not any '/' left, we want to try with
* the full path
goto error;
}
+ try_path_buf = zmalloc(LTTNG_PATH_MAX);
+ if (!try_path_buf) {
+ PERROR("zmalloc");
+ goto error;
+ }
+
/* Try to resolve this part */
- try_path = realpath((char *)cut_path, NULL);
+ try_path = realpath((char *) cut_path, try_path_buf);
if (try_path == NULL) {
+ free(try_path_buf);
/*
* There was an error, we just want to be assured it
* is linked to an unexistent directory, if it's another
}
} else {
/* Save the place we are before trying the next step */
+ try_path_buf = NULL;
free(try_path_prev);
try_path_prev = try_path;
prev = next;
goto error;
}
- ret = fprintf(fp, "%d\n", pid);
+ ret = fprintf(fp, "%d\n", (int) pid);
if (ret < 0) {
PERROR("fprintf pid file");
goto error;
if (fclose(fp)) {
PERROR("fclose");
}
- DBG("Pid %d written in file %s", pid, filepath);
+ DBG("Pid %d written in file %s", (int) pid, filepath);
ret = 0;
error:
return ret;
PERROR("Cannot open '%s' path", path);
return -1;
}
- dir_fd = dirfd(dir);
+ dir_fd = lttng_dirfd(dir);
if (dir_fd < 0) {
- PERROR("dirfd");
+ PERROR("lttng_dirfd");
return -1;
}