Message ID | 200809222150.m8MLoaXW031860@imap1.linux-foundation.org |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
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
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
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; }