| From 176fc2d5770a0990eebff903ba680d2edd32e718 Mon Sep 17 00:00:00 2001 |
| From: Mark Brown <broonie@kernel.org> |
| Date: Sat, 19 Sep 2015 07:12:34 -0700 |
| Subject: regmap: debugfs: Don't bother actually printing when calculating max |
| length |
| |
| commit 176fc2d5770a0990eebff903ba680d2edd32e718 upstream. |
| |
| The in kernel snprintf() will conveniently return the actual length of |
| the printed string even if not given an output beffer at all so just do |
| that rather than relying on the user to pass in a suitable buffer, |
| ensuring that we don't need to worry if the buffer was truncated due to |
| the size of the buffer passed in. |
| |
| Reported-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Zefan Li <lizefan@huawei.com> |
| --- |
| drivers/base/regmap/regmap-debugfs.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| --- a/drivers/base/regmap/regmap-debugfs.c |
| +++ b/drivers/base/regmap/regmap-debugfs.c |
| @@ -23,8 +23,7 @@ static struct dentry *regmap_debugfs_roo |
| /* Calculate the length of a fixed format */ |
| static size_t regmap_calc_reg_len(int max_val, char *buf, size_t buf_size) |
| { |
| - snprintf(buf, buf_size, "%x", max_val); |
| - return strlen(buf); |
| + return snprintf(NULL, 0, "%x", max_val); |
| } |
| |
| static ssize_t regmap_name_read_file(struct file *file, |