On Wed, Feb 22, 2023 at 11:03:01PM +0300, Fedor Pchelkin wrote: > From: Pavel Skripkin <paskripkin@xxxxxxxxx> > > commit 8b5cb7e41d9d77ffca036b0239177de123394a55 upstream. > > Syzbot hit NULL deref in rhashtable_free_and_destroy(). The problem was > in mesh_paths and mpp_paths being NULL. > > mesh_pathtbl_init() could fail in case of memory allocation failure, but > nobody cared, since ieee80211_mesh_init_sdata() returns void. It led to > leaving 2 pointers as NULL. Syzbot has found null deref on exit path, > but it could happen anywhere else, because code assumes these pointers are > valid. > > Since all ieee80211_*_setup_sdata functions are void and do not fail, > let's embedd mesh_paths and mpp_paths into parent struct to avoid > adding error handling on higher levels and follow the pattern of others > setup_sdata functions > > Fixes: 60854fd94573 ("mac80211: mesh: convert path table to rhashtable") > Reported-and-tested-by: syzbot+860268315ba86ea6b96b@xxxxxxxxxxxxxxxxxxxxxxxxx > Signed-off-by: Pavel Skripkin <paskripkin@xxxxxxxxx> > Link: https://lore.kernel.org/r/20211230195547.23977-1-paskripkin@xxxxxxxxx > Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx> > [pchelkin@xxxxxxxxx: adapt a comment spell fixing issue] > Signed-off-by: Fedor Pchelkin <pchelkin@xxxxxxxxx> > --- This also worked for 4.19.y, but not 4.14.y, care to also fix it there? thanks, greg k-h