From a1cf7cf37f70cb0c5d87899c269784bfe5ca11a9 Mon Sep 17 00:00:00 2001 From: Yoshiyuki Asaba Date: Fri, 12 Oct 2007 04:13:46 +0000 Subject: [PATCH] Disable alarm before returning read_startup_packet(). --- child.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/child.c b/child.c index ea71a31..3e75f0a 100644 --- a/child.c +++ b/child.c @@ -762,6 +762,7 @@ static StartupPacket *read_startup_packet(POOL_CONNECTION *cp) /* read startup packet length */ if (pool_read(cp, &len, sizeof(len))) { + alarm(0); pool_signal(SIGALRM, SIG_IGN); return NULL; } @@ -776,6 +777,7 @@ static StartupPacket *read_startup_packet(POOL_CONNECTION *cp) { pool_error("read_startup_packet: invalid startup packet"); pool_free_startup_packet(sp); + alarm(0); pool_signal(SIGALRM, SIG_IGN); return NULL; } @@ -785,6 +787,7 @@ static StartupPacket *read_startup_packet(POOL_CONNECTION *cp) { pool_error("read_startup_packet: out of memory"); pool_free_startup_packet(sp); + alarm(0); pool_signal(SIGALRM, SIG_IGN); return NULL; } @@ -793,6 +796,7 @@ static StartupPacket *read_startup_packet(POOL_CONNECTION *cp) if (pool_read(cp, sp->startup_packet, len)) { pool_free_startup_packet(sp); + alarm(0); pool_signal(SIGALRM, SIG_IGN); return NULL; } @@ -813,6 +817,7 @@ static StartupPacket *read_startup_packet(POOL_CONNECTION *cp) { pool_error("read_startup_packet: out of memory"); pool_free_startup_packet(sp); + alarm(0); pool_signal(SIGALRM, SIG_IGN); return NULL; } @@ -823,6 +828,7 @@ static StartupPacket *read_startup_packet(POOL_CONNECTION *cp) { pool_error("read_startup_packet: out of memory"); pool_free_startup_packet(sp); + alarm(0); pool_signal(SIGALRM, SIG_IGN); return NULL; } @@ -843,6 +849,7 @@ static StartupPacket *read_startup_packet(POOL_CONNECTION *cp) { pool_error("read_startup_packet: out of memory"); pool_free_startup_packet(sp); + alarm(0); pool_signal(SIGALRM, SIG_IGN); return NULL; } @@ -855,6 +862,7 @@ static StartupPacket *read_startup_packet(POOL_CONNECTION *cp) { pool_error("read_startup_packet: out of memory"); pool_free_startup_packet(sp); + alarm(0); pool_signal(SIGALRM, SIG_IGN); return NULL; } @@ -870,6 +878,7 @@ static StartupPacket *read_startup_packet(POOL_CONNECTION *cp) { pool_error("read_startup_packet: out of memory"); pool_free_startup_packet(sp); + alarm(0); pool_signal(SIGALRM, SIG_IGN); return NULL; } @@ -878,6 +887,7 @@ static StartupPacket *read_startup_packet(POOL_CONNECTION *cp) { pool_error("read_startup_packet: out of memory"); pool_free_startup_packet(sp); + alarm(0); pool_signal(SIGALRM, SIG_IGN); return NULL; } @@ -886,11 +896,14 @@ static StartupPacket *read_startup_packet(POOL_CONNECTION *cp) default: pool_error("read_startup_packet: invalid major no: %d", sp->major); pool_free_startup_packet(sp); + alarm(0); + pool_signal(SIGALRM, SIG_IGN); return NULL; } pool_debug("Protocol Major: %d Minor: %d database: %s user: %s", sp->major, sp->minor, sp->database, sp->user); + alarm(0); pool_signal(SIGALRM, SIG_IGN); return sp; } -- 2.39.5