Edsger Dijkstra will haunt is forever, it seems.  Gotos are just a tool,
and this is one of the few places they're the best tool for the job. And
generally in-kernel the acceptable method is to not forget a null check, as
Valdis mentioned. It's cool to forget a null check on your own machine (who
among us hasn't?) but if you're contributing/shipping code you gotta know
that those pointers are good.

On Fri, Oct 18, 2019, 11:44 Martin Galvan <[email protected]> wrote:

> El jue., 17 oct. 2019 a las 19:13, Valdis Klētnieks
> (<[email protected]>) escribió:
> >
> > For starters, the *correct* in-kernel way to deal with this is:
> >         if (!ptr) {
> >                 printk("You blew it!\n");
> >                 goto you_blew_it;
> >         }
>
> goto statements are harmful. In any case, what I meant was to have
> some sort of safety net to prevent exceptions (i.e. if I screw up and
> forget a NULL check) from panicking the system.
>
> > Also, "current PID" and "my module" aren't two things that can
> correspond....
>
> I don't understand what you mean by that. Module code (e.g. an ioctl)
> runs as some process. In the case of an ioctl, I'd assume it's the
> same PID of the user process.
>
> _______________________________________________
> Kernelnewbies mailing list
> [email protected]
> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
_______________________________________________
Kernelnewbies mailing list
[email protected]
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to