From 9fc726619a182744362f07ff4f51b7660133c4d4 Mon Sep 17 00:00:00 2001 From: daan Date: Fri, 30 Aug 2019 14:37:04 -0700 Subject: [PATCH] guard against passing stdin/stderr as output --- src/options.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/options.c b/src/options.c index 06d876fc..ff0c4e03 100644 --- a/src/options.c +++ b/src/options.c @@ -150,6 +150,7 @@ static void mi_out_stderr(const char* msg) { // Default output handler // -------------------------------------------------------- +#pragma warning(suppress:4180) static volatile _Atomic(mi_output_fun*) mi_out_default; // = NULL static mi_output_fun* mi_out_get_default(void) { @@ -179,7 +180,7 @@ static void mi_vfprintf( mi_output_fun* out, const char* prefix, const char* fmt if (fmt==NULL) return; if (_mi_preloading() || recurse) return; recurse = true; - if (out==NULL) out = mi_out_get_default(); + if (out==NULL || (FILE*)out==stdout || (FILE*)out==stderr) out = mi_out_get_default(); vsnprintf(buf,sizeof(buf)-1,fmt,args); if (prefix != NULL) out(prefix); out(buf);