118 lines
3.3 KiB
Diff
Executable file
118 lines
3.3 KiB
Diff
Executable file
From a6bc98ce25cd9d9dba896e93ed441ff162f6793b Mon Sep 17 00:00:00 2001
|
|
From: Long Nguyen <nguyen.long.908132@gmail.com>
|
|
Date: Sun, 9 May 2021 17:43:20 +0700
|
|
Subject: [PATCH 10/14] Properly check for the presence of bitmasks
|
|
|
|
---
|
|
src/fsmagic.c | 24 ++++++++++++------------
|
|
1 file changed, 12 insertions(+), 12 deletions(-)
|
|
|
|
diff --git a/src/fsmagic.c b/src/fsmagic.c
|
|
index 5204f20..7244841 100644
|
|
--- a/src/fsmagic.c
|
|
+++ b/src/fsmagic.c
|
|
@@ -66,7 +66,7 @@ FILE_RCSID("@(#)$File: fsmagic.c,v 1.81 2019/07/16 13:30:32 christos Exp $")
|
|
# define minor(dev) ((dev) & 0xff)
|
|
#endif
|
|
#undef HAVE_MAJOR
|
|
-#ifdef S_IFLNK
|
|
+#if S_IFLNK != 0
|
|
private int
|
|
bad_link(struct magic_set *ms, int err, char *buf)
|
|
{
|
|
@@ -108,7 +108,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
|
|
int ret, did = 0;
|
|
int mime = ms->flags & MAGIC_MIME;
|
|
int silent = ms->flags & (MAGIC_APPLE|MAGIC_EXTENSION);
|
|
-#ifdef S_IFLNK
|
|
+#if S_IFLNK != 0
|
|
char buf[BUFSIZ+4];
|
|
ssize_t nch;
|
|
struct stat tstatbuf;
|
|
@@ -122,7 +122,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
|
|
* Fstat is cheaper but fails for files you don't have read perms on.
|
|
* On 4.2BSD and similar systems, use lstat() to identify symlinks.
|
|
*/
|
|
-#ifdef S_IFLNK
|
|
+#if S_IFLNK != 0
|
|
if ((ms->flags & MAGIC_SYMLINK) == 0)
|
|
ret = lstat(fn, sb);
|
|
else
|
|
@@ -171,17 +171,17 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
|
|
|
|
ret = 1;
|
|
if (!mime && !silent) {
|
|
-#ifdef S_ISUID
|
|
+#if S_ISUID != 0
|
|
if (sb->st_mode & S_ISUID)
|
|
if (file_printf(ms, "%ssetuid", COMMA) == -1)
|
|
return -1;
|
|
#endif
|
|
-#ifdef S_ISGID
|
|
+#if S_ISGID != 0
|
|
if (sb->st_mode & S_ISGID)
|
|
if (file_printf(ms, "%ssetgid", COMMA) == -1)
|
|
return -1;
|
|
#endif
|
|
-#ifdef S_ISVTX
|
|
+#if S_ISVTX != 0
|
|
if (sb->st_mode & S_ISVTX)
|
|
if (file_printf(ms, "%ssticky", COMMA) == -1)
|
|
return -1;
|
|
@@ -197,7 +197,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
|
|
} else if (file_printf(ms, "%sdirectory", COMMA) == -1)
|
|
return -1;
|
|
break;
|
|
-#ifdef S_IFCHR
|
|
+#if S_IFCHR != 0
|
|
case S_IFCHR:
|
|
/*
|
|
* If -s has been specified, treat character special files
|
|
@@ -232,7 +232,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
|
|
}
|
|
break;
|
|
#endif
|
|
-#ifdef S_IFBLK
|
|
+#if S_IFBLK != 0
|
|
case S_IFBLK:
|
|
/*
|
|
* If -s has been specified, treat block special files
|
|
@@ -268,7 +268,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
|
|
break;
|
|
#endif
|
|
/* TODO add code to handle V7 MUX and Blit MUX files */
|
|
-#ifdef S_IFIFO
|
|
+#if S_IFIFO != 0
|
|
case S_IFIFO:
|
|
if((ms->flags & MAGIC_DEVICES) != 0)
|
|
break;
|
|
@@ -280,7 +280,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
|
|
return -1;
|
|
break;
|
|
#endif
|
|
-#ifdef S_IFDOOR
|
|
+#if S_IFDOOR != 0
|
|
case S_IFDOOR:
|
|
if (mime) {
|
|
if (handle_mime(ms, mime, "door") == -1)
|
|
@@ -290,7 +290,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
|
|
return -1;
|
|
break;
|
|
#endif
|
|
-#ifdef S_IFLNK
|
|
+#if S_IFLNK != 0
|
|
case S_IFLNK:
|
|
if ((nch = readlink(fn, buf, BUFSIZ-1)) <= 0) {
|
|
if (ms->flags & MAGIC_ERROR) {
|
|
@@ -378,7 +378,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
|
|
}
|
|
break;
|
|
#endif
|
|
-#ifdef S_IFSOCK
|
|
+#if S_IFSOCK != 0
|
|
#ifndef __COHERENT__
|
|
case S_IFSOCK:
|
|
if (mime) {
|
|
--
|
|
2.29.2.windows.2
|
|
|