Index: runtime/bin/file_android.cc |
diff --git a/runtime/bin/file_android.cc b/runtime/bin/file_android.cc |
index 993032f74e9aa6bacf96827dd26c021f3f605d1f..8f95ea7e730906a3098d948e7bfe44776516530b 100644 |
--- a/runtime/bin/file_android.cc |
+++ b/runtime/bin/file_android.cc |
@@ -411,6 +411,12 @@ void File::Stat(const char* name, int64_t* data) { |
time_t File::LastModified(const char* name) { |
struct stat st; |
if (NO_RETRY_EXPECTED(stat(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; |