Check if a file descriptor and path or stat structure are represent the same
file. This function is needed for TACTOU avoidance.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
+#include <sys/stat.h>
#include "c.h"
return ret;
}
+static inline int is_same_inode(const int fd, const struct stat *st)
+{
+ struct stat f;
+
+ if (fstat(fd, &f) < 0)
+ return 0;
+ else if (f.st_dev != st->st_dev || f.st_ino != st->st_ino)
+ return 0;
+ return 1;
+}
+
extern int dup_fd_cloexec(int oldfd, int lowfd);
extern int get_fd_tabsize(void);