[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190701.191600.1570499492484804858.davem@davemloft.net>
Date: Mon, 01 Jul 2019 19:16:00 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: xiyou.wangcong@...il.com
Cc: netdev@...r.kernel.org, dcaratti@...hat.com, chrism@...lanox.com,
willy@...radead.org
Subject: Re: [Patch net 0/3] idr: fix overflow cases on 32-bit CPU
From: Cong Wang <xiyou.wangcong@...il.com>
Date: Fri, 28 Jun 2019 11:03:40 -0700
> idr_get_next_ul() is problematic by design, it can't handle
> the following overflow case well on 32-bit CPU:
>
> u32 id = UINT_MAX;
> idr_alloc_u32(&id);
> while (idr_get_next_ul(&id) != NULL)
> id++;
>
> when 'id' overflows and becomes 0 after UINT_MAX, the loop
> goes infinite.
>
> Fix this by eliminating external users of idr_get_next_ul()
> and migrating them to idr_for_each_entry_continue_ul(). And
> add an additional parameter for these iteration macros to detect
> overflow properly.
>
> Please merge this through networking tree, as all the users
> are in networking subsystem.
Series applied, thanks Cong.
Powered by blists - more mailing lists