staging: vc04_services: Use scnprintf() for avoiding potential buffer overflow
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 <nsaenzjulienne@suse.de> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: bcm-kernel-feedback-list@broadcom.com Cc: linux-rpi-kernel@lists.infradead.org Cc: devel@driverdev.osuosl.org Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20200319161300.25967-1-tiwai@suse.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0432184f2f
commit
190c8f721a
|
@ -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)");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue