Since snprintf() returns the would-be-output size instead of the
actual output size, the succeeding calls may go beyond the given
buffer limit.  Fix it by replacing with scnprintf().

Reviewed-by: Nicolas Saenz Julienne <nsaenzjulie...@suse.de>
Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Cc: bcm-kernel-feedback-l...@broadcom.com
Cc: linux-rpi-ker...@lists.infradead.org
Cc: de...@driverdev.osuosl.org
Signed-off-by: Takashi Iwai <ti...@suse.de>
---

Greg, could you apply it if it's OK?
I forgot Cc to you and staging ML in the previous thread.

 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c 
b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
index b377f18aed45..a1ea9777a444 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
@@ -2161,17 +2161,17 @@ int vchiq_dump_platform_service_state(void 
*dump_context,
        char buf[80];
        int len;
 
-       len = snprintf(buf, sizeof(buf), "  instance %pK", service->instance);
+       len = scnprintf(buf, sizeof(buf), "  instance %pK", service->instance);
 
        if ((service->base.callback == service_callback) &&
                user_service->is_vchi) {
-               len += snprintf(buf + len, sizeof(buf) - len,
+               len += scnprintf(buf + len, sizeof(buf) - len,
                        ", %d/%d messages",
                        user_service->msg_insert - user_service->msg_remove,
                        MSG_QUEUE_SIZE);
 
                if (user_service->dequeue_pending)
-                       len += snprintf(buf + len, sizeof(buf) - len,
+                       len += scnprintf(buf + len, sizeof(buf) - len,
                                " (dequeue pending)");
        }
 
-- 
2.16.4

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to