From 3d3bb26a13dcc67f99e66de6a44ae9ced117f64b Mon Sep 17 00:00:00 2001 From: Alexandr Nedvedicky Date: Sat, 5 Oct 2024 17:26:24 +0200 Subject: [PATCH] Do not confuse TAP::Parser by mixing up stderr with stdout. This avoids false psotivie failures on FreeBSD-CI which suffers most from this issue. Fixes #23992 Reviewed-by: Matt Caswell Reviewed-by: Tomas Mraz Reviewed-by: Bernd Edlinger (Merged from https://github.com/openssl/openssl/pull/25613) --- util/perl/TLSProxy/Proxy.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/util/perl/TLSProxy/Proxy.pm b/util/perl/TLSProxy/Proxy.pm index 48c55f48220b2..8436861668a8b 100644 --- a/util/perl/TLSProxy/Proxy.pm +++ b/util/perl/TLSProxy/Proxy.pm @@ -290,8 +290,14 @@ sub start if ($self->debug) { print STDERR "Server command: $execcmd\n"; } + my $sin = undef; + my $sout = undef; + if ("$^O" eq "MSWin32") { + $pid = IPC::Open2::open2($sout, $sin, $execcmd) or die "Failed to $execcmd: $!\n"; + } else { + $pid = IPC::Open3::open3($sin, $sout, undef, $execcmd) or die "Failed to $execcmd: $!\n"; + } - $pid = IPC::Open2::open2(my $sout, my $sin, $execcmd) or die "Failed to $execcmd: $!\n"; $self->{serverpid} = $pid; # Process the output from s_server until we find the ACCEPT line, which