hc
2023-05-26 a23f51ed7a39e452c1037343a84d7db1ca2c5bd7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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);
 }