<div dir="auto"><div>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. <br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 18, 2019, 11:44 Martin Galvan <<a href="mailto:omgalvan.86@gmail.com">omgalvan.86@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">El jue., 17 oct. 2019 a las 19:13, Valdis Klētnieks<br>
(<<a href="mailto:valdis.kletnieks@vt.edu" target="_blank" rel="noreferrer">valdis.kletnieks@vt.edu</a>>) escribió:<br>
><br>
> For starters, the *correct* in-kernel way to deal with this is:<br>
>         if (!ptr) {<br>
>                 printk("You blew it!\n");<br>
>                 goto you_blew_it;<br>
>         }<br>
<br>
goto statements are harmful. In any case, what I meant was to have<br>
some sort of safety net to prevent exceptions (i.e. if I screw up and<br>
forget a NULL check) from panicking the system.<br>
<br>
> Also, "current PID" and "my module" aren't two things that can correspond....<br>
<br>
I don't understand what you mean by that. Module code (e.g. an ioctl)<br>
runs as some process. In the case of an ioctl, I'd assume it's the<br>
same PID of the user process.<br>
<br>
_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org" target="_blank" rel="noreferrer">Kernelnewbies@kernelnewbies.org</a><br>
<a href="https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" rel="noreferrer noreferrer" target="_blank">https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</blockquote></div></div></div>