Blame rdist-6.1.5-fix-msgsndnotify-loop.patch
|
|
96863fb |
--- rdist-6.1.5/src/message.c.thestokes 2006-04-19 17:30:39.000000000 -0400
|
|
|
96863fb |
+++ rdist-6.1.5/src/message.c 2006-04-19 17:36:37.000000000 -0400
|
|
Michal Luscon |
f5c9a76 |
@@ -787,15 +787,20 @@
|
|
|
96863fb |
char *msg;
|
|
|
96863fb |
{
|
|
|
96863fb |
static char buf[MSGBUFSIZ];
|
|
|
96863fb |
-
|
|
|
96863fb |
- ++nerrs;
|
|
|
96863fb |
-
|
|
|
96863fb |
- if (isserver)
|
|
|
96863fb |
- (void) sprintf(buf, "REMOTE ERROR: %s", msg);
|
|
|
96863fb |
- else
|
|
|
96863fb |
- (void) sprintf(buf, "LOCAL ERROR: %s", msg);
|
|
|
96863fb |
-
|
|
|
96863fb |
- _message(MT_FERROR, buf);
|
|
|
96863fb |
+ /* Don't reenter this function. There is a nasty infinite recursion
|
|
|
96863fb |
+ case that pops up when msgsndnotify tries to exit. */
|
|
|
96863fb |
+ static int inside=0;
|
|
|
96863fb |
+
|
|
|
96863fb |
+ if(inside==0){
|
|
|
96863fb |
+ ++nerrs;
|
|
|
96863fb |
+ inside=1;
|
|
|
96863fb |
+
|
|
|
96863fb |
+ if (isserver)
|
|
|
96863fb |
+ (void) sprintf(buf, "REMOTE ERROR: %s", msg);
|
|
|
96863fb |
+ else
|
|
|
96863fb |
+ (void) sprintf(buf, "LOCAL ERROR: %s", msg);
|
|
|
96863fb |
+ _message(MT_FERROR, buf);
|
|
|
96863fb |
+ }
|
|
|
96863fb |
|
|
|
96863fb |
exit(nerrs);
|
|
|
96863fb |
}
|