From 46e93295688385af6b4b5d17f97675087a90aba4 Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Wed, 5 Aug 2009 13:13:52 +0300 Subject: io: flag for following symlinks on fstat usually we are interested on the actual file's length. but audit is interested about the link. so add a flag for this and use it in audit. --- src/io.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/io.c') diff --git a/src/io.c b/src/io.c index a6cdd4d..50da3da 100644 --- a/src/io.c +++ b/src/io.c @@ -463,13 +463,17 @@ err_fd: return APK_BLOB_NULL; } -int apk_file_get_info(int atfd, const char *filename, int checksum, +int apk_file_get_info(int atfd, const char *filename, unsigned int flags, struct apk_file_info *fi) { struct stat64 st; struct apk_bstream *bs; + int checksum = flags & 0xffff, atflags = 0; - if (fstatat64(atfd, filename, &st, AT_SYMLINK_NOFOLLOW) != 0) + if (flags & APK_FI_NOFOLLOW) + atflags |= AT_SYMLINK_NOFOLLOW; + + if (fstatat64(atfd, filename, &st, atflags) != 0) return -errno; *fi = (struct apk_file_info) { -- cgit v1.2.3-60-g2f50