--- rfc931.c.orig +++ rfc931.c @@ -33,7 +33,7 @@ static char sccsid[] = "@(#) rfc931.c 1. 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 */ @@ -133,7 +133,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) { signal(SIGALRM, timeout); alarm(rfc931_timeout);