mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
remoteproc: mediatek: Change the snprintf() checking
The snprintf() calls here work but they have several minor style issues: 1) It uses ARRAY_SIZE() which is the number of elements in an array. Since were talking about char that works, but it's more common to use sizeof() which is the number of bytes. 2) The printf format is "%1d". The "1" ensures we always print at least 1 character but since numbers all have at least 1 digit this can be removed. 3) The kernel implementation of snprintf() cannot return negative error codes. Also these particular calls to snprintf() can't return zero and the code to handle that zero return is sort of questionable. 4) In the current kernel the only "core_id" we print is "0" but if it was more than 9 then the output would be truncated so GCC complains. Add an "a >= sizeof(scp_fw_file)" check for output which is too long. Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://lore.kernel.org/r/aP8agyKj73bLZrTQ@stanley.mountain Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
This commit is contained in:
committed by
Mathieu Poirier
parent
12dc929c6c
commit
5a3d530caa
@@ -1127,11 +1127,11 @@ static const char *scp_get_default_fw_path(struct device *dev, int core_id)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
if (core_id >= 0)
|
||||
ret = snprintf(scp_fw_file, ARRAY_SIZE(scp_fw_file), "scp_c%1d", core_id);
|
||||
ret = snprintf(scp_fw_file, sizeof(scp_fw_file), "scp_c%d", core_id);
|
||||
else
|
||||
ret = snprintf(scp_fw_file, ARRAY_SIZE(scp_fw_file), "scp");
|
||||
if (ret <= 0)
|
||||
return ERR_PTR(ret);
|
||||
ret = snprintf(scp_fw_file, sizeof(scp_fw_file), "scp");
|
||||
if (ret >= sizeof(scp_fw_file))
|
||||
return ERR_PTR(-ENAMETOOLONG);
|
||||
|
||||
/* Not using strchr here, as strlen of a const gets optimized by compiler */
|
||||
soc = &compatible[strlen("mediatek,")];
|
||||
|
||||
Reference in New Issue
Block a user