@@ -1,6 +1,29 @@
#+TITLE: pimd | Change Log
#+AUTHOR: Ahmed Helmy, George Edmond Eddy, Pavlin Ivanov Radoslavov
+* Version 2.1.7: January 9, 2011
+** Changes & New Features
+ - The previous move of runtime dump files to /var/lib/misc have been changed to
+ /var/run/pimd instead. This to accomodate *BSD systems that do not have the
+ /var/lib tree, and also recommended in the Filesystem Hierarchy Standard,
+ http://www.pathname.com/fhs/pub/fhs-2.3.html#VARRUNRUNTIMEVARIABLEDATA
+
+* Version 2.1.6: January 8, 2011
+** Changes & New Features
+ - Debian package now conflicts with smcroute, in addition to mrouted. It is only
+ possible to run one multicast routing daemon at a time, kernel limitation.
+
+ - The location of the dump file(s) have been moved from /var/tmp to /var/lib/misc
+ due to the insecure nature of /var/tmp. See more below.
+
+** Bug Fixes
+ - kern.c:k_del_vif(): Fix build error on GNU/kFreeBSD
+
+ - CVE-2011-0007: Insecure file creation in /var/tmp. "On USR1, pimd will write to
+ /var/tmp/pimd.dump a dump of the multicast route table. Since /var/tmp is
+ writable by any user, a user can create a symlink to any file he wants to destroy
+ with the content of the multicast routing table."
+
* Version 2.1.5: November 21, 2010
** Changes & New Features
- Improved error messages in kern.c
|
[-]
[+]
|
Changed |
pimd-2.1.7.tar.bz2/main.c
^
|
@@ -44,7 +44,8 @@
#include "defs.h"
#include <err.h>
#include <getopt.h>
-#include <paths.h>
+#include <sys/stat.h>
+
#ifdef SNMP
#include "snmp.h"
#endif
@@ -251,7 +252,7 @@
size_t i, j, k;
struct debugname *d;
- fprintf(stderr, "Usage: %s [-fhN] [-c FILE] [-d [LEVEL][,LEVEL...]]\n\n", __progname);
+ fprintf(stderr, "Usage: %s [-fhlNqrv] [-c FILE] [-d [LEVEL][,LEVEL...]]\n\n", __progname);
fputs(" -c, --config=FILE Configuration file to use, default /etc/pimd.conf\n", stderr);
fputs(" -d, --debug[=LEVEL] Debug level, see below for valid levels\n", stderr);
fputs(" -f, --foreground Run in foreground, do not detach from calling terminal\n", stderr);
@@ -430,6 +431,14 @@
fprintf(stderr, ")\n");
}
+ /*
+ * Create directory for runtime files
+ */
+ mkdir(_PATH_PIMD_RUNDIR, 0755);
+
+ /*
+ * Setup logging
+ */
#ifdef LOG_DAEMON
(void)openlog("pimd", LOG_PID, LOG_DAEMON);
(void)setlogmask(LOG_UPTO(LOG_NOTICE));
@@ -521,7 +530,7 @@
#endif /* SYSV */
} /* End of child process code */
- if (pidfile (NULL)) {
+ if (pidfile(NULL)) {
warn("Cannot create pidfile");
}
|