=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/rdist/docmd.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- src/usr.bin/rdist/docmd.c 1996/02/03 12:12:22 1.2 +++ src/usr.bin/rdist/docmd.c 1996/03/05 03:16:03 1.3 @@ -33,7 +33,7 @@ #ifndef lint static char RCSid[] = -"$Id: docmd.c,v 1.2 1996/02/03 12:12:22 dm Exp $"; +"$Id: docmd.c,v 1.3 1996/03/05 03:16:03 dm Exp $"; static char sccsid[] = "@(#)docmd.c 5.1 (Berkeley) 6/6/85"; @@ -432,6 +432,11 @@ char *rhost; int didupdate = 0; + if (setjmp_ok) { + error("reentrant call to doarrow"); + abort(); + } + if (!cmd) { debugmsg(DM_MISC, "doarrow() NULL cmd parameter"); return; @@ -461,12 +466,15 @@ } if (setjmp(finish_jmpbuf)) { + setjmp_ok = FALSE; debugmsg(DM_MISC, "setjmp to finish_jmpbuf"); markfailed(cmd, cmds); return; } + setjmp_ok = TRUE; if (!makeconn(rhost)) { + setjmp_ok = FALSE; markfailed(cmd, cmds); return; } @@ -583,6 +591,7 @@ } ihead = NULL; } + setjmp_ok = FALSE; } okname(name)