Patchwork [2/8] netfilter: xt_time gives a wrong monthday in a leap year

login
register
mail settings
Submitter Andrew Morton
Date Sept. 22, 2008, 9:50 p.m.
Message ID <200809222150.m8MLoaXW031860@imap1.linux-foundation.org>
Download mbox | patch
Permalink /patch/953/
State Accepted
Delegated to: David Miller
Headers show

Comments

Andrew Morton - Sept. 22, 2008, 9:50 p.m.
From: Kaihui Luo <kaih.luo@gmail.com>

The function localtime_3 in xt_time.c gives a wrong monthday in a leap
year after 28th 2.  calculating monthday should use the array
days_since_leapyear[] not days_since_year[] in a leap year.

Signed-off-by: Kaihui Luo <kaih.luo@gmail.com>
Acked-by: Jan Engelhardt <jengelh@computergmbh.de>
Cc: Patrick McHardy <kaber@trash.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 net/netfilter/xt_time.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
David Miller - Sept. 23, 2008, 2:03 a.m.
From: akpm@linux-foundation.org
Date: Mon, 22 Sep 2008 14:50:36 -0700

> From: Kaihui Luo <kaih.luo@gmail.com>
> 
> The function localtime_3 in xt_time.c gives a wrong monthday in a leap
> year after 28th 2.  calculating monthday should use the array
> days_since_leapyear[] not days_since_year[] in a leap year.
> 
> Signed-off-by: Kaihui Luo <kaih.luo@gmail.com>
> Acked-by: Jan Engelhardt <jengelh@computergmbh.de>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

Patrick, this seems pretty straightforward so I applied it
to net-next-2.6
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Patrick McHardy - Sept. 24, 2008, 9:29 a.m.
David Miller wrote:
> From: akpm@linux-foundation.org
> Date: Mon, 22 Sep 2008 14:50:36 -0700
> 
>> From: Kaihui Luo <kaih.luo@gmail.com>
>>
>> The function localtime_3 in xt_time.c gives a wrong monthday in a leap
>> year after 28th 2.  calculating monthday should use the array
>> days_since_leapyear[] not days_since_year[] in a leap year.
>>
>> Signed-off-by: Kaihui Luo <kaih.luo@gmail.com>
>> Acked-by: Jan Engelhardt <jengelh@computergmbh.de>
>> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> 
> Patrick, this seems pretty straightforward so I applied it
> to net-next-2.6


Thanks Dave.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff -puN net/netfilter/xt_time.c~netfilter-xt_time-gives-a-wrong-monthday-in-a-leap-year net/netfilter/xt_time.c
--- a/net/netfilter/xt_time.c~netfilter-xt_time-gives-a-wrong-monthday-in-a-leap-year
+++ a/net/netfilter/xt_time.c
@@ -136,17 +136,19 @@  static void localtime_3(struct xtm *r, t
 	 * from w repeatedly while counting.)
 	 */
 	if (is_leap(year)) {
+		/* use days_since_leapyear[] in a leap year */
 		for (i = ARRAY_SIZE(days_since_leapyear) - 1;
-		    i > 0 && days_since_year[i] > w; --i)
+		    i > 0 && days_since_leapyear[i] > w; --i)
 			/* just loop */;
+		r->monthday = w - days_since_leapyear[i] + 1;
 	} else {
 		for (i = ARRAY_SIZE(days_since_year) - 1;
 		    i > 0 && days_since_year[i] > w; --i)
 			/* just loop */;
+		r->monthday = w - days_since_year[i] + 1;
 	}
 
 	r->month    = i + 1;
-	r->monthday = w - days_since_year[i] + 1;
 	return;
 }