X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=net%2Fnetfilter%2Fxt_time.c;h=ed76baab47349c609c6de4cdf07c36ec12f98c21;hb=3cf93c96af7adf78542d45f8a27f0e5f8704409d;hp=e9a8794bc3ab6020c27cb6b73c24efd2b79201d1;hpb=6e5565f949af1322f8f3d3f43d044645ae448499;p=~andy%2Flinux diff --git a/net/netfilter/xt_time.c b/net/netfilter/xt_time.c index e9a8794bc3a..ed76baab473 100644 --- a/net/netfilter/xt_time.c +++ b/net/netfilter/xt_time.c @@ -95,8 +95,11 @@ static inline void localtime_2(struct xtm *r, time_t time) */ r->dse = time / 86400; - /* 1970-01-01 (w=0) was a Thursday (4). */ - r->weekday = (4 + r->dse) % 7; + /* + * 1970-01-01 (w=0) was a Thursday (4). + * -1 and +1 map Sunday properly onto 7. + */ + r->weekday = (4 + r->dse - 1) % 7 + 1; } static void localtime_3(struct xtm *r, time_t time) @@ -220,7 +223,7 @@ time_mt_check(const char *tablename, const void *ip, const struct xt_match *match, void *matchinfo, unsigned int hook_mask) { - struct xt_time_info *info = matchinfo; + const struct xt_time_info *info = matchinfo; if (info->daytime_start > XT_TIME_MAX_DAYTIME || info->daytime_stop > XT_TIME_MAX_DAYTIME) {