mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
blktrace: fix integer parse
sscanf is a very poor way to parse integer. For example, I input "discard" for act_mask, it gets 0xd and completely messes up. Using correct API to do integer parse. This patch also makes attributes accept any base of integer. Signed-off-by: Shaohua Li <shli@fb.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
69c8ebf832
commit
5f3394530f
1 changed files with 2 additions and 2 deletions
|
@ -1662,14 +1662,14 @@ static ssize_t sysfs_blk_trace_attr_store(struct device *dev,
|
|||
goto out;
|
||||
|
||||
if (attr == &dev_attr_act_mask) {
|
||||
if (sscanf(buf, "%llx", &value) != 1) {
|
||||
if (kstrtoull(buf, 0, &value)) {
|
||||
/* Assume it is a list of trace category names */
|
||||
ret = blk_trace_str2mask(buf);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
value = ret;
|
||||
}
|
||||
} else if (sscanf(buf, "%llu", &value) != 1)
|
||||
} else if (kstrtoull(buf, 0, &value))
|
||||
goto out;
|
||||
|
||||
ret = -ENXIO;
|
||||
|
|
Loading…
Add table
Reference in a new issue