Handle empty argument in repository_ctx.which()
This PR handles empty program name in repository_ctx.which() to fix #12216
Closes #12436.
PiperOrigin-RevId: 343116909
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContext.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContext.java
index a09da1f..34cd842 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContext.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContext.java
@@ -652,7 +652,10 @@
env.getListener().post(w);
if (program.contains("/") || program.contains("\\")) {
throw Starlark.errorf(
- "Program argument of which() may not contains a / or a \\ ('%s' given)", program);
+ "Program argument of which() may not contain a / or a \\ ('%s' given)", program);
+ }
+ if (program.length() == 0) {
+ throw Starlark.errorf("Program argument of which() may not be empty");
}
try {
StarlarkPath commandPath = findCommandOnPath(program);