Prevent starlark alias logic crashing with mangled args
PiperOrigin-RevId: 340711154
diff --git a/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java b/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java
index 4bf0c29..2fd462d 100644
--- a/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java
+++ b/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java
@@ -674,10 +674,10 @@
* </pre>
*
* This method returns immediately when aliasFlag is not set via the builder, which is an implicit
- * disabling of the aliaising functionality.
+ * disabling of the aliasing functionality.
*/
private String swapShorthandAlias(String arg) {
- if (aliasFlag == null) {
+ if (aliasFlag == null || !arg.startsWith("--")) {
return arg;
}
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/FlagAliasTest.java b/src/test/java/com/google/devtools/build/lib/runtime/FlagAliasTest.java
index 11f024c..3ff89c6 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/FlagAliasTest.java
+++ b/src/test/java/com/google/devtools/build/lib/runtime/FlagAliasTest.java
@@ -183,6 +183,15 @@
assertThat(parser.getResidue()).isEqualTo(expectedResidue);
}
+ // Regression test for b/172453517
+ @Test
+ public void aliasLogicSkipsNonDoubleDashArgs() {
+ ImmutableList<String> args = ImmutableList.of("c0", "--rc_source=/somewhere/.blazerc", "-=");
+ optionHandler.parseOptions(args, eventHandler);
+ assertThat(eventHandler.getEvents())
+ .contains(Event.error("-= :: Unrecognized option: -=").withTag(BAD_OPTION_TAG));
+ }
+
@Test
public void setAliasOnCommandLine_useInRcFile() {
ImmutableList<String> args =