[CLI] don't allow the Java buck integration to store too much data in an environment var

Reviewed By: jeremydubreil

Differential Revision: D5424791

fbshipit-source-id: 91713ef
master
Sam Blackshear 7 years ago committed by Facebook Github Bot
parent 410728d18f
commit 52577c0a69

@ -826,7 +826,13 @@ let parse ?config_file ~usage action initial_command =
let curr_usage = parse_args ~usage action ?initial_command cl_args in
add_parsed_args_to_args_to_export () ; curr_usage
in
Unix.putenv ~key:args_env_var ~data:!args_to_export ;
(* we have to be careful not to add too much data to the environment because the size of the
environment contributes to the length of the command to be run. if the environment + CLI is too
big, running any command will fail with a cryptic "exit code 127" error. here, we hack around the
issue by refusing to add a string to the environment if it's sufficiently big (and praying that
this won't make the command fail). TODO (t20145863): use argfiles here *)
if List.is_empty !extra_env_args || String.length !args_to_export < 100000 then
Unix.putenv ~key:args_env_var ~data:!args_to_export ;
(!curr_command, curr_usage)
let wrap_line indent_string wrap_length line0 =

Loading…
Cancel
Save