ACIL FM
Dark
Refresh
Current DIR:
/usr/src/kernels/5.14.0-611.34.1.el9_7.x86_64/scripts/coccinelle/api
/
usr
src
kernels
5.14.0-611.34.1.el9_7.x86_64
scripts
coccinelle
api
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
alloc
-
chmod
Open
Rename
Delete
debugfs
-
chmod
Open
Rename
Delete
atomic_as_refcounter.cocci
2.22 MB
chmod
View
DL
Edit
Rename
Delete
check_bq27xxx_data.cocci
3.46 MB
chmod
View
DL
Edit
Rename
Delete
device_attr_show.cocci
1.08 MB
chmod
View
DL
Edit
Rename
Delete
d_find_alias.cocci
1.28 MB
chmod
View
DL
Edit
Rename
Delete
err_cast.cocci
1.09 MB
chmod
View
DL
Edit
Rename
Delete
kfree_mismatch.cocci
5.56 MB
chmod
View
DL
Edit
Rename
Delete
kfree_sensitive.cocci
1.91 MB
chmod
View
DL
Edit
Rename
Delete
kstrdup.cocci
2.42 MB
chmod
View
DL
Edit
Rename
Delete
kvmalloc.cocci
6.13 MB
chmod
View
DL
Edit
Rename
Delete
memdup.cocci
1.33 MB
chmod
View
DL
Edit
Rename
Delete
memdup_user.cocci
2.58 MB
chmod
View
DL
Edit
Rename
Delete
platform_get_irq.cocci
1.22 MB
chmod
View
DL
Edit
Rename
Delete
platform_no_drv_owner.cocci
3.81 MB
chmod
View
DL
Edit
Rename
Delete
pm_runtime.cocci
2.37 MB
chmod
View
DL
Edit
Rename
Delete
resource_size.cocci
2.08 MB
chmod
View
DL
Edit
Rename
Delete
simple_open.cocci
1.21 MB
chmod
View
DL
Edit
Rename
Delete
stream_open.cocci
7.7 MB
chmod
View
DL
Edit
Rename
Delete
vma_pages.cocci
1.48 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /usr/src/kernels/5.14.0-611.34.1.el9_7.x86_64/scripts/coccinelle/api/kfree_mismatch.cocci
// SPDX-License-Identifier: GPL-2.0-only /// /// Check that kvmalloc'ed memory is freed by kfree functions, /// vmalloc'ed by vfree functions and kvmalloc'ed by kvfree /// functions. /// // Confidence: High // Copyright: (C) 2020 Denis Efremov ISPRAS // Options: --no-includes --include-headers // virtual patch virtual report virtual org virtual context @alloc@ expression E, E1; position kok, vok; @@ ( if (...) { ... E = \(kmalloc\|kzalloc\|krealloc\|kcalloc\| kmalloc_node\|kzalloc_node\|kmalloc_array\| kmalloc_array_node\|kcalloc_node\)(...)@kok ... } else { ... E = \(vmalloc\|vzalloc\|vmalloc_user\|vmalloc_node\| vzalloc_node\|vmalloc_exec\|vmalloc_32\| vmalloc_32_user\|__vmalloc\|__vmalloc_node_range\| __vmalloc_node\)(...)@vok ... } | E = \(kmalloc\|kzalloc\|krealloc\|kcalloc\|kmalloc_node\|kzalloc_node\| kmalloc_array\|kmalloc_array_node\|kcalloc_node\)(...)@kok ... when != E = E1 when any if (E == NULL) { ... E = \(vmalloc\|vzalloc\|vmalloc_user\|vmalloc_node\| vzalloc_node\|vmalloc_exec\|vmalloc_32\| vmalloc_32_user\|__vmalloc\|__vmalloc_node_range\| __vmalloc_node\)(...)@vok ... } ) @free@ expression E; position fok; @@ E = \(kvmalloc\|kvzalloc\|kvcalloc\|kvzalloc_node\|kvmalloc_node\| kvmalloc_array\)(...) ... kvfree(E)@fok @vfree depends on !patch@ expression E; position a != alloc.kok; position f != free.fok; @@ * E = \(kmalloc\|kzalloc\|krealloc\|kcalloc\|kmalloc_node\| * kzalloc_node\|kmalloc_array\|kmalloc_array_node\| * kcalloc_node\)(...)@a ... when != if (...) { ... E = \(vmalloc\|vzalloc\|vmalloc_user\|vmalloc_node\|vzalloc_node\|vmalloc_exec\|vmalloc_32\|vmalloc_32_user\|__vmalloc\|__vmalloc_node_range\|__vmalloc_node\)(...); ... } when != is_vmalloc_addr(E) when any * \(vfree\|vfree_atomic\|kvfree\)(E)@f @depends on patch exists@ expression E; position a != alloc.kok; position f != free.fok; @@ E = \(kmalloc\|kzalloc\|krealloc\|kcalloc\|kmalloc_node\| kzalloc_node\|kmalloc_array\|kmalloc_array_node\| kcalloc_node\)(...)@a ... when != if (...) { ... E = \(vmalloc\|vzalloc\|vmalloc_user\|vmalloc_node\|vzalloc_node\|vmalloc_exec\|vmalloc_32\|vmalloc_32_user\|__vmalloc\|__vmalloc_node_range\|__vmalloc_node\)(...); ... } when != is_vmalloc_addr(E) when any - \(vfree\|vfree_atomic\|kvfree\)(E)@f + kfree(E) @kfree depends on !patch@ expression E; position a != alloc.vok; position f != free.fok; @@ * E = \(vmalloc\|vzalloc\|vmalloc_user\|vmalloc_node\|vzalloc_node\| * vmalloc_exec\|vmalloc_32\|vmalloc_32_user\|__vmalloc\| * __vmalloc_node_range\|__vmalloc_node\)(...)@a ... when != is_vmalloc_addr(E) when any * \(kfree\|kfree_sensitive\|kvfree\)(E)@f @depends on patch exists@ expression E; position a != alloc.vok; position f != free.fok; @@ E = \(vmalloc\|vzalloc\|vmalloc_user\|vmalloc_node\|vzalloc_node\| vmalloc_exec\|vmalloc_32\|vmalloc_32_user\|__vmalloc\| __vmalloc_node_range\|__vmalloc_node\)(...)@a ... when != is_vmalloc_addr(E) when any - \(kfree\|kvfree\)(E)@f + vfree(E) @kvfree depends on !patch@ expression E; position a, f; @@ * E = \(kvmalloc\|kvzalloc\|kvcalloc\|kvzalloc_node\|kvmalloc_node\| * kvmalloc_array\)(...)@a ... when != is_vmalloc_addr(E) when any * \(kfree\|kfree_sensitive\|vfree\|vfree_atomic\)(E)@f @depends on patch exists@ expression E; @@ E = \(kvmalloc\|kvzalloc\|kvcalloc\|kvzalloc_node\|kvmalloc_node\| kvmalloc_array\)(...) ... when != is_vmalloc_addr(E) when any - \(kfree\|vfree\)(E) + kvfree(E) @kvfree_switch depends on !patch@ expression alloc.E; position f; @@ ... when != is_vmalloc_addr(E) when any * \(kfree\|kfree_sensitive\|vfree\|vfree_atomic\)(E)@f @depends on patch exists@ expression alloc.E; position f; @@ ... when != is_vmalloc_addr(E) when any ( - \(kfree\|vfree\)(E)@f + kvfree(E) | - kfree_sensitive(E)@f + kvfree_sensitive(E) ) @script: python depends on report@ a << vfree.a; f << vfree.f; @@ msg = "WARNING kmalloc is used to allocate this memory at line %s" % (a[0].line) coccilib.report.print_report(f[0], msg) @script: python depends on org@ a << vfree.a; f << vfree.f; @@ msg = "WARNING kmalloc is used to allocate this memory at line %s" % (a[0].line) coccilib.org.print_todo(f[0], msg) @script: python depends on report@ a << kfree.a; f << kfree.f; @@ msg = "WARNING vmalloc is used to allocate this memory at line %s" % (a[0].line) coccilib.report.print_report(f[0], msg) @script: python depends on org@ a << kfree.a; f << kfree.f; @@ msg = "WARNING vmalloc is used to allocate this memory at line %s" % (a[0].line) coccilib.org.print_todo(f[0], msg) @script: python depends on report@ a << kvfree.a; f << kvfree.f; @@ msg = "WARNING kvmalloc is used to allocate this memory at line %s" % (a[0].line) coccilib.report.print_report(f[0], msg) @script: python depends on org@ a << kvfree.a; f << kvfree.f; @@ msg = "WARNING kvmalloc is used to allocate this memory at line %s" % (a[0].line) coccilib.org.print_todo(f[0], msg) @script: python depends on report@ ka << alloc.kok; va << alloc.vok; f << kvfree_switch.f; @@ msg = "WARNING kmalloc (line %s) && vmalloc (line %s) are used to allocate this memory" % (ka[0].line, va[0].line) coccilib.report.print_report(f[0], msg) @script: python depends on org@ ka << alloc.kok; va << alloc.vok; f << kvfree_switch.f; @@ msg = "WARNING kmalloc (line %s) && vmalloc (line %s) are used to allocate this memory" % (ka[0].line, va[0].line) coccilib.org.print_todo(f[0], msg)
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply