mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Avoiding selected variables assignments before null pointer checks
@ 2026-07-02 18:27 Markus Elfring
  2026-07-09  8:30 ` Avoiding selected variable " Markus Elfring
  0 siblings, 1 reply; 2+ messages in thread
From: Markus Elfring @ 2026-07-02 18:27 UTC (permalink / raw)
  To: cocci, kernel-janitors; +Cc: linux-hardening, LKML

Avoiding selected variables assignments before null pointer checks


Hello,

Another source code search approach can occasionally be helpful also by the means
of the semantic patch language (Coccinelle software).


Example:
@display@
expression action, input, target;
identifier member1, member2, var;
type t;
@@
(
*t var = \( & \( input->member1 \| input->member1.member2 \) \| action(..., & \( input->member1 \| input->member1.member2 \), ...) \);
 ... when != input
     when any
|
*target = \( & \( input->member1 \| input->member1.member2 \) \| action(..., & \( input->member1 \| input->member1.member2 \), ...) \);
 ... when != input
     when any
)
*if (input == NULL || ...)
(   return ...;
|{
    ...
    return ...;
 }
)


Test result:
Markus_Elfring@Sonne:…/Projekte/Linux/next-analyses> time /usr/bin/spatch --timeout 23 -j4 --chunksize 1 --no-loops -dir . …/Projekte/Coccinelle/janitor/show_pointer_dereferences_before_check10.cocci > …/Projekte/Bau/Linux/scripts/Coccinelle/show_pointer_dereferences_before_check10-20260701.diff 2> …/Projekte/Bau/Linux/scripts/Coccinelle/show_pointer_dereferences_before_check10-errors-20260701.txt

real    32m26,907s
user    105m10,515s
sys     0m45,265s
Markus_Elfring@Sonne:…/Projekte/Linux/next-analyses> lsdiff …/Projekte/Bau/Linux/scripts/Coccinelle/show_pointer_dereferences_before_check10-20260701.diff | wc -l
44



How will chances evolve to adjust more places according to remaining update candidates?

See also once more:
EXP34-C: Do not dereference null pointers
https://cmu-sei.github.io/secure-coding-standards/sei-cert-c-coding-standard/rules/expressions-exp/exp34-c/

Regards,
Markus

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-07-09  8:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-02 18:27 Avoiding selected variables assignments before null pointer checks Markus Elfring
2026-07-09  8:30 ` Avoiding selected variable " Markus Elfring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®