From 7910b3b6460c0049c93c275f6c3ab9d8a97cd697 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 11 Aug 2022 20:06:23 +0100 Subject: [PATCH] prefork-interp: fixes and tests Signed-off-by: Ian Jackson --- cprogs/prefork-interp.c | 19 +++++++++---------- perl/prefork-interp-test | 8 ++++---- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/cprogs/prefork-interp.c b/cprogs/prefork-interp.c index 63bff8b..7e35087 100644 --- a/cprogs/prefork-interp.c +++ b/cprogs/prefork-interp.c @@ -89,11 +89,10 @@ const char our_name[] = "prefork-interp"; -struct sockaddr_un sun; +struct sockaddr_un sockaddr_sun; #define ACK_BYTE '\n' -static struct sockaddr_un socket_sun; static const char *const *executor_argv; void fusagemessage(FILE *f) { @@ -281,8 +280,8 @@ static FILE *connect_existing(void) { fd = socket(AF_UNIX, SOCK_STREAM, 0); if (fd==-1) diee("socket() for client"); - socklen_t salen = sizeof(sun); - r = connect(fd, (const struct sockaddr*)&socket_sun, salen); + socklen_t salen = sizeof(sockaddr_sun); + r = connect(fd, (const struct sockaddr*)&sockaddr_sun, salen); if (r==-1) { if (errno==ECONNREFUSED || errno==ENOENT) goto x_garbage; diee("connect() %s", socket_path); @@ -351,8 +350,8 @@ static FILE *connect_or_spawn(void) { int sfd = socket(AF_UNIX, SOCK_STREAM, 0); if (sfd<0) diee("socket() for new listener"); - socklen_t salen = sizeof(sun); - r= bind(sfd, (const struct sockaddr*)&socket_sun, salen); + socklen_t salen = sizeof(sockaddr_sun); + r= bind(sfd, (const struct sockaddr*)&sockaddr_sun, salen); if (r<0) diee("bind() on new listener"); // We never want callers to get ECONNREFUSED. But: @@ -410,10 +409,10 @@ int main(int argc_unused, const char *const *argv) { make_executor_argv(argv); find_socket_path(); - FILLZERO(sun); - sun.sun_family = AF_UNIX; - assert(strlen(socket_path) <= sizeof(sun.sun_path)); - strncpy(sun.sun_path, socket_path, sizeof(sun.sun_path)); + FILLZERO(sockaddr_sun); + sockaddr_sun.sun_family = AF_UNIX; + assert(strlen(socket_path) <= sizeof(sockaddr_sun.sun_path)); + strncpy(sockaddr_sun.sun_path, socket_path, sizeof(sockaddr_sun.sun_path)); FILE *call_sock = connect_or_spawn(); uint32_t status; diff --git a/perl/prefork-interp-test b/perl/prefork-interp-test index 779190c..2111751 100755 --- a/perl/prefork-interp-test +++ b/perl/prefork-interp-test @@ -4,13 +4,13 @@ use strict; BEGIN { unshift @INC, '.' } use Proc::Prefork; -print STDERR "BEGIN - STDERR\n" and flush STDERR or die $!; -print STDOUT "BEGIN - STDOUT\n" and flush STDOUT or die $!; +print STDERR "BEGIN - STDERR - @ARGV\n" and flush STDERR or die $!; +print STDOUT "BEGIN - STDOUT - @ARGV\n" and flush STDOUT or die $!; initialisation_complete(); -print STDERR "AFTER - STDERR\n" and flush STDERR or die $!; -print STDOUT "AFTER - STDOUT\n" and flush STDOUT or die $!; +print STDERR "AFTER - STDERR - @ARGV\n" and flush STDERR or die $!; +print STDOUT "AFTER - STDOUT - @ARGV\n" and flush STDOUT or die $!; while () { last unless m{\S}; -- 2.30.2