From: Marco d'Itri <md@linux.it>
Date: Sat, 14 May 2022 02:57:49 +0800
Subject: siglongjmp

---
 rfc931.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/rfc931.c b/rfc931.c
index bfdfe6e..ef22f2d 100644
--- a/rfc931.c
+++ b/rfc931.c
@@ -33,7 +33,7 @@ static char sccsid[] = "@(#) rfc931.c 1.10 95/01/02 16:11:34";
 
 int     rfc931_timeout = RFC931_TIMEOUT;/* Global so it can be changed */
 
-static jmp_buf timebuf;
+static sigjmp_buf timebuf;
 
 /* fsocket - open stdio stream on top of socket */
 
@@ -62,7 +62,7 @@ int     protocol;
 static void timeout(sig)
 int     sig;
 {
-    longjmp(timebuf, sig);
+    siglongjmp(timebuf, sig);
 }
 
 /* rfc931 - return remote user name, given socket structures */
@@ -135,7 +135,7 @@ char   *dest;
 	 * Set up a timer so we won't get stuck while waiting for the server.
 	 */
 
-	if (setjmp(timebuf) == 0) {
+	if (sigsetjmp(timebuf, 1) == 0) {
 	    /* Save SIGALRM timer and handler. Sudheer Abdul-Salam, SUN. */
 	    saved_timeout = alarm(0);
 	    nact.sa_handler = timeout;
