Re: [PATCH] tty: n_gsm: fix missing assignment of gsm->receive() in gsmld_attach_gsm()

From: Mazin Al Haddad
Date: Fri Aug 12 2022 - 15:41:53 EST


On Wed Aug 10, 2022 at 12:08 PM +03, Starke, Daniel wrote:
> > Fix this by setting the gsm->receive() function when the line
> > discipline is being attached to the terminal device, inside
> > gsmld_attach_gsm(). This will guarantee that the function is assigned
> > and a call to TIOCSTI, which calls gsmld_receive_buf(), will not
> > reference a null pointer.
>
> In my opinion there are only two possible ways to fix this:
> a) Move the gsm->receive initialization from gsm_activate_mux() to
> gsmld_attach_gsm().
> b) Avoid calling gsm->receive in gsmld_receive_buf() if not initialized.
>
> The current code might assume that gsm->receive is only called after MUX
> activation. Therefore, variant a) may break the code in other places.
> I see no need to initialize gsm->receive in gsm_activate_mux() and
> gsmld_attach_gsm().

Thanks for the feedback! I will send a v2 patch that implements a check
shortly.