On 22/07/26 21:58, Thorsten Blum wrote:
Use scnprintf() and its return value to avoid a separate strlen() call.

Signed-off-by: Thorsten Blum <[email protected]>
---
  arch/powerpc/kernel/rtas_flash.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/rtas_flash.c b/arch/powerpc/kernel/rtas_flash.c
index 583dc16e9d3c..aff8a67e274f 100644
--- a/arch/powerpc/kernel/rtas_flash.c
+++ b/arch/powerpc/kernel/rtas_flash.c
@@ -291,6 +291,7 @@ static ssize_t rtas_flash_read_num(struct file *file, char 
__user *buf,
  {
        struct rtas_update_flash_t *const uf = &rtas_update_flash_data;
        char msg[RTAS_MSG_MAXLEN];
+       size_t len;
        int status;
mutex_lock(&rtas_update_flash_mutex);
@@ -298,8 +299,8 @@ static ssize_t rtas_flash_read_num(struct file *file, char 
__user *buf,
        mutex_unlock(&rtas_update_flash_mutex);
/* Read as number */
-       sprintf(msg, "%d\n", status);
-       return simple_read_from_buffer(buf, count, ppos, msg, strlen(msg));
+       len = scnprintf(msg, sizeof(msg), "%d\n", status);
+       return simple_read_from_buffer(buf, count, ppos, msg, len);


Though there is no real buffer overflow issue here, it is a good idea to
convert sprintf to scnprintf. This change helps avoid calling strlen on the
same buffer.

Changes looks good to me. Feel free to add:
Reviewed-by: Sourabh Jain <[email protected]>


  }
/* We could be much more efficient here. But to keep this function

Reply via email to