diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java
index 09f3300..2ed70f6 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContext.java
@@ -331,7 +331,6 @@
         WorkspaceRuleEvent.newReadEvent(p.toString(), rule.getLabel().toString(), location);
     env.getListener().post(w);
     try {
-      checkInOutputDirectory("read", p);
       return FileSystemUtils.readContent(p.getPath(), StandardCharsets.ISO_8859_1);
     } catch (IOException e) {
       throw new RepositoryFunctionException(e, Transience.TRANSIENT);
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContextTest.java b/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContextTest.java
index 85ed571..b174f23 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryContextTest.java
@@ -251,34 +251,6 @@
 
     String content = context.readFile(context.path("foo/bar"), null);
     assertThat(content).isEqualTo("foobar");
-
-    try {
-      context.readFile(context.path("/absolute"), null);
-      fail("Expected error on reading path outside of the repository directory");
-    } catch (RepositoryFunctionException ex) {
-      assertThat(ex)
-          .hasCauseThat()
-          .hasMessageThat()
-          .isEqualTo("Cannot read outside of the repository directory for path /absolute");
-    }
-    try {
-      context.readFile(context.path("../somepath"), null);
-      fail("Expected error on reading path outside of the repository directory");
-    } catch (RepositoryFunctionException ex) {
-      assertThat(ex)
-          .hasCauseThat()
-          .hasMessageThat()
-          .isEqualTo("Cannot read outside of the repository directory for path /somepath");
-    }
-    try {
-      context.readFile(context.path("foo/../../somepath"), null);
-      fail("Expected error on reading path outside of the repository directory");
-    } catch (RepositoryFunctionException ex) {
-      assertThat(ex)
-          .hasCauseThat()
-          .hasMessageThat()
-          .isEqualTo("Cannot read outside of the repository directory for path /somepath");
-    }
   }
 
   @Test
