diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-05 02:05:12 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-05 02:05:12 +0000 |
commit | 6d497629b22f67bcaa4d074e0bee728808cfd4be (patch) | |
tree | 608c8c7ca4caa4124e1df5501658ad687bcfadfb /mjit.c | |
parent | fc1f476b61e2227c2981bd323163b77a6588305a (diff) | |
download | ruby-6d497629b22f67bcaa4d074e0bee728808cfd4be.tar.gz |
More verbose message at unsafe header
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'mjit.c')
-rw-r--r-- | mjit.c | 21 |
1 files changed, 12 insertions, 9 deletions
@@ -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); |