diff --git a/rdist-6.1.5-fix-msgsndnotify-loop.patch b/rdist-6.1.5-fix-msgsndnotify-loop.patch new file mode 100644 index 0000000..d34aa78 --- /dev/null +++ b/rdist-6.1.5-fix-msgsndnotify-loop.patch @@ -0,0 +1,32 @@ +--- 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); + } diff --git a/rdist.spec b/rdist.spec index d313c4b..0cfe27f 100644 --- a/rdist.spec +++ b/rdist.spec @@ -1,7 +1,7 @@ Summary: Maintains identical copies of files on multiple machines. Name: rdist Version: 6.1.5 -Release: 43.1 +Release: 44 Epoch: 1 License: BSD Group: Applications/System @@ -22,6 +22,7 @@ Patch10: rdist-6.1.5-ssh.patch Patch11: rdist-6.1.5-mkstemp.patch Patch12: rdist-6.1.5-stat64.patch Patch13: rdist-6.1.5-re_args.patch +Patch14: rdist-6.1.5-fix-msgsndnotify-loop.patch URL: http://www.MagniComp.com/rdist BuildRoot: %{_tmppath}/%{name}-root BuildPreReq: byacc bison @@ -54,6 +55,7 @@ cp %{SOURCE1} . %patch11 -p1 -b .mkstemp %patch12 -p1 -b .stat64 %patch13 -p1 -b .re_args +%patch14 -p1 -b .fix-msgsndnotify-loop %build make @@ -87,6 +89,9 @@ rm -rf ${RPM_BUILD_ROOT} %{_mandir}/man8/rdist.8* %changelog +* Wed Aug 02 2006 Phil Knirsch 1:6.1.5-44 +- Fixed problem with memory leak (#192229) + * Wed Jul 12 2006 Jesse Keating - 1:6.1.5-43.1 - rebuild