1 // SPDX-License-Identifier: GPL-2.0-only 2 /// NULL check before some freeing functions i 3 /// 4 /// Based on checkpatch warning 5 /// "kfree(NULL) is safe this check is probabl 6 /// and kfreeaddr.cocci by Julia Lawall. 7 /// 8 // Copyright: (C) 2014 Fabian Frederick. 9 // Comments: - 10 // Options: --no-includes --include-headers 11 12 virtual patch 13 virtual org 14 virtual report 15 virtual context 16 17 @r2 depends on patch@ 18 expression E; 19 @@ 20 - if (E != NULL) 21 ( 22 kfree(E); 23 | 24 kvfree(E); 25 | 26 kfree_sensitive(E); 27 | 28 kvfree_sensitive(E, ...); 29 | 30 vfree(E); 31 | 32 debugfs_remove(E); 33 | 34 debugfs_remove_recursive(E); 35 | 36 usb_free_urb(E); 37 | 38 kmem_cache_destroy(E); 39 | 40 mempool_destroy(E); 41 | 42 dma_pool_destroy(E); 43 ) 44 45 @r depends on context || report || org @ 46 expression E; 47 position p; 48 @@ 49 50 * if (E != NULL) 51 * \(kfree@p\|kvfree@p\|kfree_sensitive@p 52 * debugfs_remove@p\|debugfs_remove_rec 53 * usb_free_urb@p\|kmem_cache_destroy@p 54 * dma_pool_destroy@p\)(E, ...); 55 56 @script:python depends on org@ 57 p << r.p; 58 @@ 59 60 cocci.print_main("NULL check before that freei 61 62 @script:python depends on report@ 63 p << r.p; 64 @@ 65 66 msg = "WARNING: NULL check before some freeing 67 coccilib.report.print_report(p[0], msg)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.