| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // SPDX-License-Identifier: GPL-2.0-only
- ///
- /// From Documentation/filesystems/sysfs.rst:
- /// show() should only use sysfs_emit() or sysfs_emit_at() when formatting
- /// the value to be returned to user space.
- ///
- // Confidence: High
- // Copyright: (C) 2020 Denis Efremov ISPRAS
- // Options: --no-includes --include-headers
- //
- virtual report
- virtual org
- virtual context
- virtual patch
- @r depends on !patch@
- identifier show, dev, attr, buf;
- position p;
- @@
- ssize_t show(struct device *dev, struct device_attribute *attr, char *buf)
- {
- <...
- * return snprintf@p(...);
- ...>
- }
- @rp depends on patch@
- identifier show, dev, attr, buf;
- expression BUF, SZ, FORMAT;
- @@
- ssize_t show(struct device *dev, struct device_attribute *attr, char *buf)
- {
- <...
- return
- - snprintf(BUF, SZ, FORMAT
- + sysfs_emit(BUF, FORMAT
- ,...);
- ...>
- }
- @script: python depends on report@
- p << r.p;
- @@
- coccilib.report.print_report(p[0], "WARNING: please use sysfs_emit or sysfs_emit_at")
- @script: python depends on org@
- p << r.p;
- @@
- coccilib.org.print_todo(p[0], "WARNING: please use sysfs_emit or sysfs_emit_at")
|