summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-05 02:05:12 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-05 02:05:12 +0000
commit6d497629b22f67bcaa4d074e0bee728808cfd4be (patch)
tree608c8c7ca4caa4124e1df5501658ad687bcfadfb
parentfc1f476b61e2227c2981bd323163b77a6588305a (diff)
More verbose message at unsafe header
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--mjit.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/mjit.c b/mjit.c
index 2bdd53c329..ffaff8e1d8 100644
--- a/mjit.c
+++ b/mjit.c
@@ -422,15 +422,18 @@ init_header_filename(void)
return FALSE;
}
#ifndef LOAD_RELATIVE
- if ((basedir == build_dir) &&
- (fstat(fd, &st) ||
- st.st_uid != getuid() ||
- (st.st_mode & 022))) {
- (void)close(fd);
- verbose(1, "Unsafe header file: %s", header_file);
- xfree(header_file);
- header_file = NULL;
- return FALSE;
+ if (basedir == build_dir) {
+ memset(&st, 0, sizeof(st));
+ if (fstat(fd, &st) ||
+ (st.st_uid != getuid()) ||
+ (st.st_mode & 022)) {
+ (void)close(fd);
+ verbose(1, "Unsafe header file: uid=%ld mode=%#o %s",
+ (long)st.st_uid, (unsigned)st.st_mode, header_file);
+ xfree(header_file);
+ header_file = NULL;
+ return FALSE;
+ }
}
#endif
(void)close(fd);