summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/admin.scm10
-rw-r--r--gnu/packages/patches/inetutils-syslogd.patch20
3 files changed, 29 insertions, 2 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 2b4f69dc73..ccc755bb99 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -438,6 +438,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/guix-test-networking.patch		\
   gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
   gnu/packages/patches/hop-bigloo-4.0b.patch			\
+  gnu/packages/patches/inetutils-syslogd.patch			\
   gnu/packages/patches/irrlicht-mesa-10.patch			\
   gnu/packages/patches/jbig2dec-ignore-testtest.patch		\
   gnu/packages/patches/kmod-module-directory.patch		\
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 4d4cef7cf3..3a0361299e 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -55,7 +55,8 @@
   #:use-module (gnu packages libftdi)
   #:use-module (gnu packages image)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages python))
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages man))
 
 (define-public dmd
   (package
@@ -158,13 +159,18 @@ re-executing them as necessary.")
                                  version ".tar.gz"))
              (sha256
               (base32
-               "04wrm0v7l4890mmbaawd6wjwdv08bkglgqhpz0q4dkb0l50fl8q4"))))
+               "04wrm0v7l4890mmbaawd6wjwdv08bkglgqhpz0q4dkb0l50fl8q4"))
+             (patches (list (search-patch "inetutils-syslogd.patch")))))
     (build-system gnu-build-system)
     (arguments `(;; FIXME: `tftp.sh' relies on `netstat' from utils-linux,
                  ;; which is currently missing.
                  #:tests? #f))
     (inputs `(("ncurses" ,ncurses)
               ("readline" ,readline)))            ; for 'ftp'
+
+    ;; Help2man is needed because of the patch that modifies syslogd.c.
+    (native-inputs `(("help2man" ,help2man)))
+
     (home-page "http://www.gnu.org/software/inetutils/")
     (synopsis "Basic networking utilities")
     (description
diff --git a/gnu/packages/patches/inetutils-syslogd.patch b/gnu/packages/patches/inetutils-syslogd.patch
new file mode 100644
index 0000000000..0bf9eb7fc6
--- /dev/null
+++ b/gnu/packages/patches/inetutils-syslogd.patch
@@ -0,0 +1,20 @@
+From <http://lists.gnu.org/archive/html/bug-inetutils/2015-04/msg00001.html>.
+
+2015-04-01  Ludovic Courtès  <ludo@gnu.org>
+
+	* src/syslogd.c (load_conffile): Use 'bcopy' instead of 'strcpy'
+	since the two regions may overlap.
+	Reported by Alex Kost <alezost@gmail.com>
+	at <http://lists.gnu.org/archive/html/guix-devel/2015-03/msg00780.html>.
+
+--- a/src/syslogd.c
++++ b/src/syslogd.c
+@@ -1989,7 +1989,7 @@ load_conffile (const char *filename, struct filed **nextp)
+       if (*p == '\0' || *p == '#')
+ 	continue;
+ 
+-      strcpy (cline, p);
++      bcopy (p, cline, strlen (p) + 1);
+ 
+       /* Cut the trailing spaces.  */
+       for (p = strchr (cline, '\0'); isspace (*--p);)