Skip to content

Commit 809c532

Browse files
authored
Fix crash when driver fuzzer finds language-server. (#4847)
The driver fuzzer, unlike the actual driver, provides a null `input_stream`, which caused the `language-server` subcommand to crash.
1 parent 3d39ab6 commit 809c532

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

toolchain/driver/driver_test.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,5 +228,10 @@ TEST_F(DriverTest, FileOutput) {
228228
EXPECT_THAT(ReadFile("test.s"), ContainsRegex("Main:"));
229229
}
230230

231+
TEST_F(DriverTest, LanguageServerNoStdin) {
232+
EXPECT_FALSE(driver_.RunCommand({"language-server"}).success);
233+
EXPECT_THAT(test_error_stream_.TakeStr(), HasSubstr("requires input_stream"));
234+
}
235+
231236
} // namespace
232237
} // namespace Carbon

toolchain/driver/language_server_subcommand.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ auto LanguageServerSubcommand::Run(DriverEnv& driver_env) -> DriverResult {
2222
if (!driver_env.input_stream) {
2323
*driver_env.error_stream
2424
<< "error: language-server requires input_stream\n";
25+
return {.success = false};
2526
}
2627

2728
auto err =

0 commit comments

Comments
 (0)