| Upstream-Status: Inappropriate [1] |
| |
| [1] Not the author, the patch is from: |
| http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm |
| |
| --- rdist-6.1.5/src/message.c.thestokes 2006-04-19 17:30:39.000000000 -0400 |
| +++ rdist-6.1.5/src/message.c 2006-04-19 17:36:37.000000000 -0400 |
| @@ -793,15 +793,20 @@ |
| char *msg; |
| { |
| static char buf[MSGBUFSIZ]; |
| - |
| - ++nerrs; |
| - |
| - if (isserver) |
| - (void) sprintf(buf, "REMOTE ERROR: %s", msg); |
| - else |
| - (void) sprintf(buf, "LOCAL ERROR: %s", msg); |
| - |
| - _message(MT_FERROR, buf); |
| + /* Don't reenter this function. There is a nasty infinite recursion |
| + case that pops up when msgsndnotify tries to exit. */ |
| + static int inside=0; |
| + |
| + if(inside==0){ |
| + ++nerrs; |
| + inside=1; |
| + |
| + if (isserver) |
| + (void) sprintf(buf, "REMOTE ERROR: %s", msg); |
| + else |
| + (void) sprintf(buf, "LOCAL ERROR: %s", msg); |
| + _message(MT_FERROR, buf); |
| + } |
| |
| exit(nerrs); |
| } |