Messages in this thread | | | From | Dmitry Vyukov <> | Date | Wed, 8 Aug 2018 17:51:34 +0200 | Subject | Re: [PATCH] 9p: fix NULL pointer dereferences |
| |
On Fri, Jul 27, 2018 at 12:15 AM, Dominique Martinet <asmadeus@codewreck.org> wrote: > Tomas Bortoli wrote on Thu, Jul 26, 2018: >> > If we want to preserve the current behaviour for trans=fd (and I don't >> > see why not) we just have to patch all the transports that use the >> > device, that is all .create functions but p9_fd_create() >> > >> > Basically exactly what you did, just for a few more functions - I >> > apparently was a little bit too optimistic thinking we could share >> > this check. >> >> Does v9fs_mount() knows the transport ahead? Because in that case it'd >> be possible to check if addr!=NULL && trans!=fd then return error >> >> Otherwise, patching all the .create, ok. > > 9p option parsing is all over the place, split in fs/9p/v9fs, > net/9p/client and net/9p/trans_*... Which is actually somewhat of a > problem because that means we can't warn on unused option as each parser > does not know the full subset of options used, so if someone makes a > typo they're on their own to figure it out :/ > > > If you want to factor it in, v9fs_mount does not know which transport is > used, but p9_client_create does know - although the functions/structs > are all static so you need to check clnt->trans_mod->name with strcmp > and I'm honestly not sure that's better than checking in each function.. > > But, as usual I'm happy as long as it works, so pick your poison :)
So let's proceed with checking in each transport function?
| |