From 7d336e5fb779e6050aaca4f931fc56092c29708e Mon Sep 17 00:00:00 2001 From: Valentin Churavy Date: Tue, 27 Jun 2023 05:42:24 -0400 Subject: [PATCH] fix parsing of env --- src/threading.c | 6 +++++- test/cmdlineargs.jl | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/threading.c b/src/threading.c index 68d63019d6a0c..e2eb686e3061a 100644 --- a/src/threading.c +++ b/src/threading.c @@ -659,7 +659,11 @@ void jl_init_threading(void) jl_n_sweepthreads = jl_options.nsweepthreads; if (jl_n_markthreads == -1) { // --gcthreads not specified if ((cp = getenv(NUM_GC_THREADS_NAME))) { // ENV[NUM_GC_THREADS_NAME] specified - jl_n_markthreads = (uint64_t)strtol(cp, NULL, 10) - 1; + errno = 0; + jl_n_markthreads = (uint64_t)strtol(cp, &endptr, 10) - 1; + if (errno != 0 || endptr == cp || nthreads <= 0) + jl_n_markthreads = 0; + cp = endptr; if (*cp == ',') { cp++; errno = 0; diff --git a/test/cmdlineargs.jl b/test/cmdlineargs.jl index 92a9d933ee507..917031b57fe5f 100644 --- a/test/cmdlineargs.jl +++ b/test/cmdlineargs.jl @@ -372,7 +372,7 @@ let exename = `$(Base.julia_cmd()) --startup-file=no --color=no` end withenv("JULIA_NUM_GC_THREADS" => "2,1") do - @test_broken read(`$exename -e $code`, String) == "3" + @test read(`$exename -e $code`, String) == "3" end # --machine-file