Message ID | 20200313020502.31341-1-ap420073@gmail.com |
---|---|
Headers | show |
Series | hsr: fix several bugs in generic netlink callback | expand |
On Fri, 13 Mar 2020 at 11:05, Taehee Yoo <ap420073@gmail.com> wrote: > > This patchset is to fix several bugs they are related in > generic netlink callback in hsr module. > > 1. The first patch is to add missing rcu_read_lock() in > hsr_get_node_{list/status}(). > The hsr_get_node_{list/status}() are not protected by RTNL because > they are callback functions of generic netlink. > But it calls __dev_get_by_index() without acquiring RTNL. > So, it would use unsafe data. > > 2. The second patch is to avoid failure of hsr_get_node_list(). > hsr_get_node_list() is a callback of generic netlink and > it is used to get node information in userspace. > But, if there are so many nodes, it fails because of buffer size. > So, in this patch, restart routine is added. > > 3. The third patch is to set .netnsok flag to true. > If .netnsok flag is false, non-init_net namespace is not allowed to > operate generic netlink operations. > So, currently, non-init_net namespace has no way to get node information > because .netnsok is false in the current hsr code. > I found that the second patch doesn't preserve reverse christmas tree variable ordering. So, I will send a v2 patch. > Taehee Yoo (3): > hsr: use rcu_read_lock() in hsr_get_node_{list/status}() > hsr: add restart routine into hsr_get_node_list() > hsr: set .netnsok flag > > net/hsr/hsr_framereg.c | 9 ++----- > net/hsr/hsr_netlink.c | 61 +++++++++++++++++++++++++++--------------- > 2 files changed, 41 insertions(+), 29 deletions(-) > > -- > 2.17.1 >