Use 0755 instead of 0777 when creating a writable directory.

This matches the permissions used for output files and tree artifacts (see ActionMetadataHandler#setPathPermissions), as well as the behavior of UnixFileSystem#setWritable (which only touches the user bit).

PiperOrigin-RevId: 510111759
Change-Id: Iebd8e4d07dff86e12035afe2cab8ba0b4decbfd7
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/AbstractFileSystem.java b/src/main/java/com/google/devtools/build/lib/vfs/AbstractFileSystem.java
index 1ff1435..51434af 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/AbstractFileSystem.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/AbstractFileSystem.java
@@ -141,7 +141,7 @@
       throw new IOException(path + " (Not a directory)");
     }
 
-    chmod(path, 0777);
+    chmod(path, 0755);
     return false;
   }
 
diff --git a/src/main/native/unix_jni.cc b/src/main/native/unix_jni.cc
index 1af7983..477a4c3 100644
--- a/src/main/native/unix_jni.cc
+++ b/src/main/native/unix_jni.cc
@@ -576,7 +576,7 @@
       return false;
     }
     // directory does not exist.
-    if (::mkdir(path_chars, 0777) == -1) {
+    if (::mkdir(path_chars, 0755) == -1) {
       PostException(env, errno, path_chars);
     }
     return true;
@@ -587,7 +587,7 @@
     return false;
   }
   // Make sure the mode is correct.
-  if ((statbuf.st_mode & 0777) != 0777 && ::chmod(path_chars, 0777) == -1) {
+  if ((statbuf.st_mode & 0755) != 0755 && ::chmod(path_chars, 0755) == -1) {
     PostException(env, errno, path_chars);
   }
   return false;