Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

coccinelle: api: update kzfree script to kfree_sensitive

Commit 453431a54934 ("mm, treewide: rename kzfree() to kfree_sensitive()")
renames kzfree to kfree_sensitive and uses memzero_explicit(...) instead of
memset(..., 0, ...) internally. Update cocci script to reflect these
changes.

Signed-off-by: Denis Efremov <efremov@linux.com>
Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>

authored by

Denis Efremov and committed by
Julia Lawall
6519a5ab 7c9dc603

+13 -16
+13 -16
scripts/coccinelle/api/kzfree.cocci scripts/coccinelle/api/kfree_sensitive.cocci
··· 1 1 // SPDX-License-Identifier: GPL-2.0-only 2 2 /// 3 - /// Use kzfree, kvfree_sensitive rather than memset or 4 - /// memzero_explicit followed by kfree 3 + /// Use kfree_sensitive, kvfree_sensitive rather than memset or 4 + /// memzero_explicit followed by kfree. 5 5 /// 6 6 // Confidence: High 7 7 // Copyright: (C) 2020 Denis Efremov ISPRAS 8 8 // Options: --no-includes --include-headers 9 9 // 10 - // Keywords: kzfree, kvfree_sensitive 10 + // Keywords: kfree_sensitive, kvfree_sensitive 11 11 // 12 12 13 13 virtual context ··· 18 18 @initialize:python@ 19 19 @@ 20 20 # kmalloc_oob_in_memset uses memset to explicitly trigger out-of-bounds access 21 - filter = frozenset(['kmalloc_oob_in_memset', 'kzfree', 'kvfree_sensitive']) 21 + filter = frozenset(['kmalloc_oob_in_memset', 22 + 'kfree_sensitive', 'kvfree_sensitive']) 22 23 23 24 def relevant(p): 24 25 return not (filter & {el.current_element for el in p}) ··· 57 56 - memzero_explicit@m((T)E, size); 58 57 ... when != E 59 58 when strict 60 - // TODO: uncomment when kfree_sensitive will be merged. 61 - // Only this case is commented out because developers 62 - // may not like patches like this since kzfree uses memset 63 - // internally (not memzero_explicit). 64 - //( 65 - //- kfree(E)@p; 66 - //+ kfree_sensitive(E); 67 - //| 59 + ( 60 + - kfree(E)@p; 61 + + kfree_sensitive(E); 62 + | 68 63 - \(vfree\|kvfree\)(E)@p; 69 64 + kvfree_sensitive(E, size); 70 - //) 65 + ) 71 66 72 67 @rp_memset depends on patch@ 73 68 expression E, size; ··· 77 80 when strict 78 81 ( 79 82 - kfree(E)@p; 80 - + kzfree(E); 83 + + kfree_sensitive(E); 81 84 | 82 85 - \(vfree\|kvfree\)(E)@p; 83 86 + kvfree_sensitive(E, size); ··· 88 91 @@ 89 92 90 93 coccilib.report.print_report(p[0], 91 - "WARNING: opportunity for kzfree/kvfree_sensitive") 94 + "WARNING: opportunity for kfree_sensitive/kvfree_sensitive") 92 95 93 96 @script:python depends on org@ 94 97 p << r.p; 95 98 @@ 96 99 97 100 coccilib.org.print_todo(p[0], 98 - "WARNING: opportunity for kzfree/kvfree_sensitive") 101 + "WARNING: opportunity for kfree_sensitive/kvfree_sensitive")