diff --git a/appl/popper/popper.c b/appl/popper/popper.c index 78e2db405..7322cab6f 100644 --- a/appl/popper/popper.c +++ b/appl/popper/popper.c @@ -38,10 +38,12 @@ tgets(char *str, int size, FILE *fp, int timeout) { signal(SIGALRM, ring); alarm(timeout); - if (setjmp(env)) - str = NULL; - else - str = fgets(str,size,fp); + if (setjmp(env)) { + alarm(0); + signal(SIGALRM,SIG_DFL); + return NULL; + } + fgets(str,size,fp); alarm(0); signal(SIGALRM,SIG_DFL); return(str);