summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Yamin <plasmaroo@gentoo.org>2004-01-06 18:00:57 +0000
committerTim Yamin <plasmaroo@gentoo.org>2004-01-06 18:00:57 +0000
commit4be8cfd163a3f95a485f4915ad331e93f46e9452 (patch)
treee69e550fe0e04315955453678bf2bb1e2cc5c5cc /sys-kernel/ck-sources
parentinitial import (diff)
downloadgentoo-2-4be8cfd163a3f95a485f4915ad331e93f46e9452.tar.gz
gentoo-2-4be8cfd163a3f95a485f4915ad331e93f46e9452.tar.bz2
gentoo-2-4be8cfd163a3f95a485f4915ad331e93f46e9452.zip
Added 2.4.24 security patches; see bugs #37317 and #37292 for details.
Diffstat (limited to 'sys-kernel/ck-sources')
-rw-r--r--sys-kernel/ck-sources/ChangeLog13
-rw-r--r--sys-kernel/ck-sources/Manifest16
-rw-r--r--sys-kernel/ck-sources/ck-sources-2.4.22-r1.ebuild7
-rw-r--r--sys-kernel/ck-sources/ck-sources-2.4.22-r2.ebuild7
-rw-r--r--sys-kernel/ck-sources/ck-sources-2.4.22-r3.ebuild7
-rw-r--r--sys-kernel/ck-sources/ck-sources-2.4.23-r1.ebuild7
-rw-r--r--sys-kernel/ck-sources/files/ck-sources.CAN-2003-0985.patch13
-rw-r--r--sys-kernel/ck-sources/files/ck-sources.rtc_fix.patch180
8 files changed, 228 insertions, 22 deletions
diff --git a/sys-kernel/ck-sources/ChangeLog b/sys-kernel/ck-sources/ChangeLog
index 4dc6b88c01ed..140bc72db965 100644
--- a/sys-kernel/ck-sources/ChangeLog
+++ b/sys-kernel/ck-sources/ChangeLog
@@ -1,11 +1,18 @@
# ChangeLog for sys-kernel/ck-sources
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ChangeLog,v 1.16 2004/01/05 12:16:12 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ChangeLog,v 1.17 2004/01/06 18:00:45 plasmaroo Exp $
+
+ 06 Jan 2004; <plasmaroo@gentoo.org> ck-sources-2.4.22-r1.ebuild,
+ ck-sources-2.4.22-r2.ebuild, ck-sources-2.4.22-r3.ebuild,
+ ck-sources-2.4.23-r1.ebuild, files/ck-sources.CAN-2003-0985.patch,
+ files/ck-sources.rtc_fix.patch:
+ Added patches to address the security vulnerabilities in bugs #37292 and
+ #37317.
05 Jan 2004; Robin H. Johnson <robbat2@gentoo.org>
ck-sources-2.4.22-r1.ebuild, ck-sources-2.4.22-r2.ebuild,
ck-sources-2.4.22-r3.ebuild, ck-sources-2.4.23-r1.ebuild:
- fix bug #37286
+ Fix bug #37286.
*ck-sources-2.4.23-r1 (04 Dec 2004)
@@ -24,7 +31,7 @@
ck-sources-2.4.20-r4.ebuild, ck-sources-2.4.20-r6.ebuild,
ck-sources-2.4.22-r1.ebuild, ck-sources-2.4.22-r2.ebuild,
files/do_brk_fix.patch:
- Fix the 'do_brk' vulnerability
+ Fix the 'do_brk' vulnerability.
21 Oct 2004; <iggy@gentoo.org> ck-sources-2.4.22-r2.ebuild:
The -ck2 ebuild wasn't applying the fixes correctly.
diff --git a/sys-kernel/ck-sources/Manifest b/sys-kernel/ck-sources/Manifest
index 67580c261953..03875ba221a0 100644
--- a/sys-kernel/ck-sources/Manifest
+++ b/sys-kernel/ck-sources/Manifest
@@ -1,11 +1,13 @@
-MD5 a6e5f260f8a64127e60327f9ab180a00 ck-sources-2.4.22-r3.ebuild 2649
-MD5 495e7ffdc942cccd89692192abc43d47 ck-sources-2.4.22-r2.ebuild 2636
-MD5 3cf72e36d9c35382b9fc8be9f87b3614 ck-sources-2.4.23-r1.ebuild 2115
-MD5 72becd08cc0fb3ed7fee48d571fb9a9e ck-sources-2.4.22-r1.ebuild 2193
-MD5 119202165496abfbbf7fe36a936aeafc ChangeLog 2604
+MD5 a228f5e42bb813c1d5d11dd9f4e0b16a ChangeLog 2925
+MD5 50b4d502e416be23c76ec38bb5be275d ck-sources-2.4.22-r1.ebuild 2376
+MD5 659225f3709d3099b222fe32b01996aa ck-sources-2.4.22-r2.ebuild 2819
MD5 7187b8c28501f454a2412c9e4a7fcf53 metadata.xml 421
-MD5 e637c6fa41097ea2c4693d0766f2e1c5 files/do_brk_fix.patch 242
+MD5 ff7e54e20cd07989740ecef4b723e8f6 ck-sources-2.4.22-r3.ebuild 2831
+MD5 bc2d9e3acdf71e4e0ce547851e208c97 ck-sources-2.4.23-r1.ebuild 2290
MD5 21de1cea06112ebc3b93be74f0cd68cd files/digest-ck-sources-2.4.22-r1 132
+MD5 d641cd49ae63ca2989672d2209691bb5 files/ck-sources.CAN-2003-0985.patch 414
+MD5 e2e2b545b6fcdcecf49e33798efa5b84 files/ck-sources.rtc_fix.patch 7073
MD5 82966f7b4b6e4528742eb1fb46a62565 files/digest-ck-sources-2.4.22-r2 285
-MD5 82966f7b4b6e4528742eb1fb46a62565 files/digest-ck-sources-2.4.22-r3 285
MD5 8ff65c51449bbe71a64f15dd6840d3b5 files/digest-ck-sources-2.4.23-r1 285
+MD5 82966f7b4b6e4528742eb1fb46a62565 files/digest-ck-sources-2.4.22-r3 285
+MD5 e637c6fa41097ea2c4693d0766f2e1c5 files/do_brk_fix.patch 242
diff --git a/sys-kernel/ck-sources/ck-sources-2.4.22-r1.ebuild b/sys-kernel/ck-sources/ck-sources-2.4.22-r1.ebuild
index 901c93a09f6a..b7eb8b86b3aa 100644
--- a/sys-kernel/ck-sources/ck-sources-2.4.22-r1.ebuild
+++ b/sys-kernel/ck-sources/ck-sources-2.4.22-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ck-sources-2.4.22-r1.ebuild,v 1.4 2004/01/05 12:16:12 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ck-sources-2.4.22-r1.ebuild,v 1.5 2004/01/06 18:00:45 plasmaroo Exp $
IUSE="build"
@@ -48,7 +48,6 @@ KEYWORDS="x86 -ppc"
SLOT="${KV}"
src_unpack() {
- sleep 1
unpack linux-${OURKERNEL}.tar.bz2
mv linux-${OURKERNEL} linux-${KV} || die
@@ -61,7 +60,9 @@ src_unpack() {
bzcat ${DISTDIR}/patch-${KV}.bz2|patch -p1 || die "-aa patch failed"
- epatch ${FILESDIR}/do_brk_fix.patch || die "failed to patch for do_brk vuln"
+ epatch ${FILESDIR}/do_brk_fix.patch || die "Failed to patch do_brk() vulnerability!"
+ epatch ${FILESDIR}/${PN}.CAN-2003-0985.patch || die "Failed to patch mremap() vulnerability!"
+ epatch ${FILESDIR}/${PN}.rtc_fix.patch || die "Failed to patch RTC vulnerabilities!"
kernel_universal_unpack
}
diff --git a/sys-kernel/ck-sources/ck-sources-2.4.22-r2.ebuild b/sys-kernel/ck-sources/ck-sources-2.4.22-r2.ebuild
index 5c4f53b8c3eb..63e991f608ce 100644
--- a/sys-kernel/ck-sources/ck-sources-2.4.22-r2.ebuild
+++ b/sys-kernel/ck-sources/ck-sources-2.4.22-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ck-sources-2.4.22-r2.ebuild,v 1.4 2004/01/05 12:16:12 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ck-sources-2.4.22-r2.ebuild,v 1.5 2004/01/06 18:00:45 plasmaroo Exp $
IUSE="build"
@@ -52,7 +52,6 @@ KEYWORDS="x86 -ppc"
SLOT="${KV}"
src_unpack() {
- sleep 1
unpack linux-${OURKERNEL}.tar.bz2
mv linux-${OURKERNEL} linux-${KV} || die
@@ -68,7 +67,9 @@ src_unpack() {
epatch ${DISTDIR}/patch-2.4.22-ck2-fix.patch
epatch ${DISTDIR}/patch-2422-ck2-sm1.2.8-sm1.2.9-0309171736
- epatch ${FILESDIR}/do_brk_fix.patch || die "failed to patch for do_brk vuln"
+ epatch ${FILESDIR}/do_brk_fix.patch || die "Failed to patch do_brk() vulnerability!"
+ epatch ${FILESDIR}/${PN}.CAN-2003-0985.patch || die "Failed to patch mremap() vulnerability!"
+ epatch ${FILESDIR}/${PN}.rtc_fix.patch || die "Failed to patch RTC vulnerabilities!"
kernel_universal_unpack
}
diff --git a/sys-kernel/ck-sources/ck-sources-2.4.22-r3.ebuild b/sys-kernel/ck-sources/ck-sources-2.4.22-r3.ebuild
index a80de65c4394..042ab9bde814 100644
--- a/sys-kernel/ck-sources/ck-sources-2.4.22-r3.ebuild
+++ b/sys-kernel/ck-sources/ck-sources-2.4.22-r3.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ck-sources-2.4.22-r3.ebuild,v 1.2 2004/01/05 12:16:12 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ck-sources-2.4.22-r3.ebuild,v 1.3 2004/01/06 18:00:45 plasmaroo Exp $
IUSE="build"
@@ -52,7 +52,6 @@ KEYWORDS="x86 -ppc"
SLOT="${KV}"
src_unpack() {
- #sleep 1
unpack linux-${OURKERNEL}.tar.bz2
mv linux-${OURKERNEL} linux-${KV} || die
@@ -68,7 +67,9 @@ src_unpack() {
epatch ${DISTDIR}/patch-2.4.22-ck2-fix.patch
epatch ${DISTDIR}/patch-2422-ck2-sm1.2.8-sm1.2.9-0309171736
- epatch ${FILESDIR}/do_brk_fix.patch || die "failed to patch for do_brk vuln"
+ epatch ${FILESDIR}/do_brk_fix.patch || die "Failed to patch do_brk() vulnerability!"
+ epatch ${FILESDIR}/${PN}.CAN-2003-0985.patch || die "Failed to patch mremap() vulnerability!"
+ epatch ${FILESDIR}/${PN}.rtc_fix.patch || die "Failed to patch RTC vulnerabilities!"
kernel_universal_unpack
}
diff --git a/sys-kernel/ck-sources/ck-sources-2.4.23-r1.ebuild b/sys-kernel/ck-sources/ck-sources-2.4.23-r1.ebuild
index 9cca805f9399..f496c21bfecd 100644
--- a/sys-kernel/ck-sources/ck-sources-2.4.23-r1.ebuild
+++ b/sys-kernel/ck-sources/ck-sources-2.4.23-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ck-sources-2.4.23-r1.ebuild,v 1.2 2004/01/05 12:16:12 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/ck-sources/ck-sources-2.4.23-r1.ebuild,v 1.3 2004/01/06 18:00:45 plasmaroo Exp $
IUSE="build"
@@ -48,10 +48,8 @@ KEYWORDS="x86 -ppc"
SLOT="${KV}"
src_unpack() {
- sleep 1
unpack linux-${OURKERNEL}.tar.bz2
mv linux-${OURKERNEL} linux-${KV} || die
-
cd linux-${KV}
# if we need a pre/rc patch, then use it
@@ -61,6 +59,9 @@ src_unpack() {
bzcat ${DISTDIR}/patch-${KV}.bz2|patch -p1 || die "-ck patch failed"
+ epatch ${FILESDIR}/${PN}.CAN-2003-0985.patch || die "Failed to patch mremap() vulnerability!"
+ epatch ${FILESDIR}/${PN}.rtc_fix.patch || die "Failed to patch RTC vulnerabilities!"
+
kernel_universal_unpack
}
diff --git a/sys-kernel/ck-sources/files/ck-sources.CAN-2003-0985.patch b/sys-kernel/ck-sources/files/ck-sources.CAN-2003-0985.patch
new file mode 100644
index 000000000000..bacef69f02f8
--- /dev/null
+++ b/sys-kernel/ck-sources/files/ck-sources.CAN-2003-0985.patch
@@ -0,0 +1,13 @@
+--- linux/mm/mremap.c.orig 2004-01-05 17:01:21.382104120 +0000
++++ linux/mm/mremap.c 2004-01-05 17:15:25.689749848 +0000
+@@ -315,6 +315,10 @@
+ old_len = PAGE_ALIGN(old_len);
+ new_len = PAGE_ALIGN(new_len);
+
++ /* Don't allow the degenerate cases */
++ if (!(old_len | new_len))
++ goto out;
++
+ /* new_addr is only valid if MREMAP_FIXED is specified */
+ if (flags & MREMAP_FIXED) {
+ if (new_addr & ~PAGE_MASK)
diff --git a/sys-kernel/ck-sources/files/ck-sources.rtc_fix.patch b/sys-kernel/ck-sources/files/ck-sources.rtc_fix.patch
new file mode 100644
index 000000000000..76a663c6e89d
--- /dev/null
+++ b/sys-kernel/ck-sources/files/ck-sources.rtc_fix.patch
@@ -0,0 +1,180 @@
+diff -urN linux-2.4.23/arch/cris/drivers/ds1302.c linux-2.4.24/arch/cris/drivers/ds1302.c
+--- linux-2.4.23/arch/cris/drivers/ds1302.c 2003-08-25 04:44:39.000000000 -0700
++++ linux-2.4.24/arch/cris/drivers/ds1302.c 2004-01-05 05:53:56.000000000 -0800
+@@ -346,6 +346,7 @@
+ {
+ struct rtc_time rtc_tm;
+
++ memset(&rtc_tm, 0, sizeof (struct rtc_time));
+ get_rtc_time(&rtc_tm);
+ if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time)))
+ return -EFAULT;
+diff -urN linux-2.4.23/arch/cris/drivers/pcf8563.c linux-2.4.24/arch/cris/drivers/pcf8563.c
+--- linux-2.4.23/arch/cris/drivers/pcf8563.c 2003-08-25 04:44:39.000000000 -0700
++++ linux-2.4.24/arch/cris/drivers/pcf8563.c 2004-01-05 05:53:56.000000000 -0800
+@@ -220,6 +220,7 @@
+ {
+ struct rtc_time tm;
+
++ memset(&tm, 0, sizeof (struct rtc_time));
+ get_rtc_time(&tm);
+
+ if (copy_to_user((struct rtc_time *) arg, &tm, sizeof tm)) {
+diff -urN linux-2.4.23/arch/m68k/bvme6000/rtc.c linux-2.4.24/arch/m68k/bvme6000/rtc.c
+--- linux-2.4.23/arch/m68k/bvme6000/rtc.c 2003-06-13 07:51:31.000000000 -0700
++++ linux-2.4.24/arch/m68k/bvme6000/rtc.c 2004-01-05 05:53:56.000000000 -0800
+@@ -54,6 +54,7 @@
+ /* Ensure clock and real-time-mode-register are accessible */
+ msr = rtc->msr & 0xc0;
+ rtc->msr = 0x40;
++ memset(&wtime, 0, sizeof(struct rtc_time));
+ do {
+ wtime.tm_sec = BCD2BIN(rtc->bcd_sec);
+ wtime.tm_min = BCD2BIN(rtc->bcd_min);
+diff -urN linux-2.4.23/arch/m68k/mvme16x/rtc.c linux-2.4.24/arch/m68k/mvme16x/rtc.c
+--- linux-2.4.23/arch/m68k/mvme16x/rtc.c 2003-06-13 07:51:31.000000000 -0700
++++ linux-2.4.24/arch/m68k/mvme16x/rtc.c 2004-01-05 05:53:56.000000000 -0800
+@@ -52,6 +52,7 @@
+ cli();
+ /* Ensure clock and real-time-mode-register are accessible */
+ rtc->ctrl = RTC_READ;
++ memset(&wtime, 0, sizeof(struct rtc_time));
+ wtime.tm_sec = BCD2BIN(rtc->bcd_sec);
+ wtime.tm_min = BCD2BIN(rtc->bcd_min);
+ wtime.tm_hour = BCD2BIN(rtc->bcd_hr);
+diff -urN linux-2.4.23/arch/ppc64/kernel/rtc.c linux-2.4.24/arch/ppc64/kernel/rtc.c
+--- linux-2.4.23/arch/ppc64/kernel/rtc.c 2003-06-13 07:51:32.000000000 -0700
++++ linux-2.4.24/arch/ppc64/kernel/rtc.c 2004-01-05 05:53:56.000000000 -0800
+@@ -96,6 +96,7 @@
+ switch (cmd) {
+ case RTC_RD_TIME: /* Read the time/date from RTC */
+ {
++ memset(&wtime, 0, sizeof(struct rtc_time));
+ ppc_md.get_rtc_time(&wtime);
+ break;
+ }
+diff -urN linux-2.4.23/drivers/acorn/char/i2c.c linux-2.4.24/drivers/acorn/char/i2c.c
+--- linux-2.4.23/drivers/acorn/char/i2c.c 2003-08-25 04:44:40.000000000 -0700
++++ linux-2.4.24/drivers/acorn/char/i2c.c 2004-01-05 05:53:56.000000000 -0800
+@@ -166,6 +166,7 @@
+ break;
+
+ case RTC_RD_TIME:
++ memset(&rtctm, 0, sizeof(struct rtc_time));
+ get_rtc_time(&rtc_raw, &year);
+ rtctm.tm_sec = rtc_raw.secs;
+ rtctm.tm_min = rtc_raw.mins;
+diff -urN linux-2.4.23/drivers/char/ds1286.c linux-2.4.24/drivers/char/ds1286.c
+--- linux-2.4.23/drivers/char/ds1286.c 2003-08-25 04:44:41.000000000 -0700
++++ linux-2.4.24/drivers/char/ds1286.c 2004-01-05 05:53:56.000000000 -0800
+@@ -173,7 +173,7 @@
+ * means "don't care" or "match all". Only the tm_hour,
+ * tm_min, and tm_sec values are filled in.
+ */
+-
++ memset(&wtime, 0, sizeof(struct rtc_time));
+ ds1286_get_alm_time(&wtime);
+ break;
+ }
+@@ -216,6 +216,7 @@
+ }
+ case RTC_RD_TIME: /* Read the time/date from RTC */
+ {
++ memset(&wtime, 0, sizeof(struct rtc_time));
+ ds1286_get_time(&wtime);
+ break;
+ }
+diff -urN linux-2.4.23/drivers/char/efirtc.c linux-2.4.24/drivers/char/efirtc.c
+--- linux-2.4.23/drivers/char/efirtc.c 2003-06-13 07:51:32.000000000 -0700
++++ linux-2.4.24/drivers/char/efirtc.c 2004-01-05 05:53:56.000000000 -0800
+@@ -118,6 +118,7 @@
+ static void
+ convert_from_efi_time(efi_time_t *eft, struct rtc_time *wtime)
+ {
++ memset(wtime, 0, sizeof(struct rtc_time));
+ wtime->tm_sec = eft->second;
+ wtime->tm_min = eft->minute;
+ wtime->tm_hour = eft->hour;
+diff -urN linux-2.4.23/drivers/char/ip27-rtc.c linux-2.4.24/drivers/char/ip27-rtc.c
+--- linux-2.4.23/drivers/char/ip27-rtc.c 2003-08-25 04:44:41.000000000 -0700
++++ linux-2.4.24/drivers/char/ip27-rtc.c 2004-01-05 05:53:56.000000000 -0800
+@@ -83,6 +83,7 @@
+ switch (cmd) {
+ case RTC_RD_TIME: /* Read the time/date from RTC */
+ {
++ memset(&wtime, 0, sizeof(struct rtc_time));
+ get_rtc_time(&wtime);
+ break;
+ }
+diff -urN linux-2.4.23/drivers/char/mips_rtc.c linux-2.4.24/drivers/char/mips_rtc.c
+--- linux-2.4.23/drivers/char/mips_rtc.c 2003-08-25 04:44:41.000000000 -0700
++++ linux-2.4.24/drivers/char/mips_rtc.c 2004-01-05 05:53:56.000000000 -0800
+@@ -82,6 +82,7 @@
+
+ switch (cmd) {
+ case RTC_RD_TIME: /* Read the time/date from RTC */
++ memset(&rtc_tm, 0, sizeof(struct rtc_time));
+ curr_time = rtc_get_time();
+ to_tm(curr_time, &rtc_tm);
+ rtc_tm.tm_year -= 1900;
+diff -urN linux-2.4.23/drivers/char/rtc.c linux-2.4.24/drivers/char/rtc.c
+--- linux-2.4.23/drivers/char/rtc.c 2003-11-28 10:26:20.000000000 -0800
++++ linux-2.4.24/drivers/char/rtc.c 2004-01-05 05:53:56.000000000 -0800
+@@ -362,7 +362,7 @@
+ * means "don't care" or "match all". Only the tm_hour,
+ * tm_min, and tm_sec values are filled in.
+ */
+-
++ memset(&wtime, 0, sizeof(struct rtc_time));
+ get_rtc_alm_time(&wtime);
+ break;
+ }
+@@ -406,6 +406,7 @@
+ }
+ case RTC_RD_TIME: /* Read the time/date from RTC */
+ {
++ memset(&wtime, 0, sizeof(struct rtc_time));
+ get_rtc_time(&wtime);
+ break;
+ }
+diff -urN linux-2.4.23/drivers/hil/hp_sdc_rtc.c linux-2.4.24/drivers/hil/hp_sdc_rtc.c
+--- linux-2.4.23/drivers/hil/hp_sdc_rtc.c 2003-06-13 07:51:33.000000000 -0700
++++ linux-2.4.24/drivers/hil/hp_sdc_rtc.c 2004-01-05 05:53:56.000000000 -0800
+@@ -561,6 +561,7 @@
+ }
+ case RTC_ALM_READ: /* Read the present alarm time */
+ {
++ memset(&ttime, 0, sizeof(struct timeval));
+ if (hp_sdc_rtc_read_mt(&ttime)) return -EFAULT;
+ break;
+ }
+@@ -609,6 +610,7 @@
+ }
+ case RTC_RD_TIME: /* Read the time/date from RTC */
+ {
++ memset(&wtime, 0, sizeof(struct rtc_time));
+ if (hp_sdc_rtc_read_bbrtc(&wtime)) return -EFAULT;
+ break;
+ }
+diff -urN linux-2.4.23/drivers/macintosh/rtc.c linux-2.4.24/drivers/macintosh/rtc.c
+--- linux-2.4.23/drivers/macintosh/rtc.c 2002-02-25 11:37:58.000000000 -0800
++++ linux-2.4.24/drivers/macintosh/rtc.c 2004-01-05 05:53:56.000000000 -0800
+@@ -64,6 +64,7 @@
+ case RTC_RD_TIME:
+ if (ppc_md.get_rtc_time)
+ {
++ memset(&rtc_tm, 0, sizeof(struct rtc_time));
+ get_rtc_time(&rtc_tm);
+
+ if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time)))
+diff -urN linux-2.4.23/drivers/sbus/char/rtc.c linux-2.4.24/drivers/sbus/char/rtc.c
+--- linux-2.4.23/drivers/sbus/char/rtc.c 2001-10-10 23:42:47.000000000 -0700
++++ linux-2.4.24/drivers/sbus/char/rtc.c 2004-01-05 05:53:56.000000000 -0800
+@@ -89,6 +89,7 @@
+ switch (cmd)
+ {
+ case RTCGET:
++ memset(&rtc_tm, 0, sizeof(struct rtc_time));
+ get_rtc_time(&rtc_tm);
+
+ if (copy_to_user((struct rtc_time*)arg, &rtc_tm, sizeof(struct rtc_time)))