Add patch to fix ipset timeout setting problem
[openwrt.git] / package / network / utils / ipset / patches / 001-timeout-size.patch
1 diff --git a/lib/parse.c b/lib/parse.c
2 index 8ea8542..440ef8f 100644
3 --- a/lib/parse.c
4 +++ b/lib/parse.c
5 @@ -1292,15 +1292,20 @@ ipset_parse_timeout(struct ipset_session *session,
6                     enum ipset_opt opt, const char *str)
7  {
8         int err;
9 -       unsigned long long num = 0;
10 +       unsigned long long llnum = 0;
11 +       uint32_t num = 0;
12  
13         assert(session);
14         assert(opt == IPSET_OPT_TIMEOUT);
15         assert(str);
16  
17 -       err = string_to_number_ll(session, str, 0, UINT_MAX/1000, &num);
18 -       if (err == 0)
19 +       err = string_to_number_ll(session, str, 0, UINT_MAX/1000, &llnum);
20 +       if (err == 0) {
21 +               /* Timeout is expected to be 32bits wide, so we have
22 +                  to convert it here */
23 +               num = llnum;
24                 return ipset_session_data_set(session, opt, &num);
25 +       }
26  
27         return err;
28  }