]> git.pld-linux.org Git - packages/kernel.git/commitdiff
- fix for kernel memory leaks through rtc (raw for 2.4.23)
authorJakub Bogusz <qboosh@pld-linux.org>
Mon, 5 Jan 2004 16:01:53 +0000 (16:01 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    linux-2.4-rtc.patch -> 1.1

linux-2.4-rtc.patch [new file with mode: 0644]

diff --git a/linux-2.4-rtc.patch b/linux-2.4-rtc.patch
new file mode 100644 (file)
index 0000000..76a663c
--- /dev/null
@@ -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)))
This page took 0.084895 seconds and 4 git commands to generate.