Index: runtime/bin/file_linux.cc |
diff --git a/runtime/bin/file_linux.cc b/runtime/bin/file_linux.cc |
index 4f7ab5c3a6492849a4c3cd856aa164817e315ec2..cb0d66e222998911d7f0c1622218c598a8d2d099 100644 |
--- a/runtime/bin/file_linux.cc |
+++ b/runtime/bin/file_linux.cc |
@@ -419,6 +419,12 @@ void File::Stat(const char* name, int64_t* data) { |
time_t File::LastModified(const char* name) { |
struct stat64 st; |
if (TEMP_FAILURE_RETRY(stat64(name, &st)) == 0) { |
+ // Signal an error if it's a directory. |
+ if (S_ISDIR(st.st_mode)) { |
+ errno = EISDIR; |
+ return -1; |
+ } |
+ // Otherwise assume the caller knows what it's doing. |
return st.st_mtime; |
} |
return -1; |