From 8ee0078586a14008b9915450dbc719051ed7d3d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Ter=C3=A4s?= Date: Thu, 6 Jan 2011 08:25:22 +0200 Subject: main/busybox: fix disappearing crontabs bug It's uninitialized memory use bug. The relevant parts are rewritten in busybox-1.18.x and later, so this patch applies only to the busybox-1.17.x versions. Fixes #436. --- main/busybox/APKBUILD | 4 +++- main/busybox/busybox-1.17.4-crond.patch | 30 ++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 main/busybox/busybox-1.17.4-crond.patch (limited to 'main') diff --git a/main/busybox/APKBUILD b/main/busybox/APKBUILD index 6b0424bd1..1b6c2d61c 100644 --- a/main/busybox/APKBUILD +++ b/main/busybox/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa pkgname=busybox pkgver=1.17.4 -pkgrel=0 +pkgrel=1 pkgdesc="Size optimized toolbox of many common UNIX utilities" url=http://busybox.net arch="x86 x86_64" @@ -13,6 +13,7 @@ triggers="busybox.trigger:/bin /usr/bin /sbin /usr/sbin /lib/modules/*" source="http://busybox.net/downloads/$pkgname-$pkgver.tar.bz2 ifupdown-ipv6.patch $pkgname-1.11.1-bb.patch + $pkgname-1.17.4-crond.patch busyboxconfig" _builddir="$srcdir"/$pkgname-$pkgver @@ -72,4 +73,5 @@ static() { md5sums="b3254232e9919007ca803d3a4fe81f3c busybox-1.17.4.tar.bz2 08af7b8b4e41f86a34a16270a8691e31 ifupdown-ipv6.patch 4c0f3b486eaa0674961b7ddcd0c60a9b busybox-1.11.1-bb.patch +fd451b1e8e6e976c99869dc2d149ccc9 busybox-1.17.4-crond.patch 403e0b9fe99a7a18c5b9ae91283a5f9a busyboxconfig" diff --git a/main/busybox/busybox-1.17.4-crond.patch b/main/busybox/busybox-1.17.4-crond.patch new file mode 100644 index 000000000..79c6b1665 --- /dev/null +++ b/main/busybox/busybox-1.17.4-crond.patch @@ -0,0 +1,30 @@ +diff --git a/miscutils/crond.c b/miscutils/crond.c +index 4a3103c..7ba8bab 100644 +--- a/miscutils/crond.c ++++ b/miscutils/crond.c +@@ -827,7 +827,7 @@ ForkJob(const char *user, CronLine *line, int mailFd, + + static void RunJob(const char *user, CronLine *line) + { +- char mailFile[128]; ++ char mailFile[128], *mail_filename = NULL; + int mailFd = -1; + + line->cl_Pid = 0; +@@ -836,6 +836,7 @@ static void RunJob(const char *user, CronLine *line) + if (line->cl_MailTo) { + /* open mail file - owner root so nobody can screw with it. */ + snprintf(mailFile, sizeof(mailFile), "%s/cron.%s.%d", TMPDIR, user, getpid()); ++ mail_filename = mailFile; + mailFd = open(mailFile, O_CREAT | O_TRUNC | O_WRONLY | O_EXCL | O_APPEND, 0600); + + if (mailFd >= 0) { +@@ -849,7 +850,7 @@ static void RunJob(const char *user, CronLine *line) + } + } + +- ForkJob(user, line, mailFd, DEFAULT_SHELL, "-c", line->cl_Shell, mailFile); ++ ForkJob(user, line, mailFd, DEFAULT_SHELL, "-c", line->cl_Shell, mail_filename); + } + + /* -- cgit v1.2.3