From: Alexey Dobriyan Fixing sbpcd.c baroque error printing in process. Signed-off-by: Alexey Dobriyan Cc: Jens Axboe Signed-off-by: Andrew Morton --- drivers/cdrom/optcd.c | 2 +- drivers/cdrom/sbpcd.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff -puN drivers/cdrom/optcd.c~drivers-cdrom-trivial-vsnprintf-conversion drivers/cdrom/optcd.c --- a/drivers/cdrom/optcd.c~drivers-cdrom-trivial-vsnprintf-conversion +++ a/drivers/cdrom/optcd.c @@ -101,7 +101,7 @@ static void debug(int debug_this, const return; va_start(args, fmt); - vsprintf(s, fmt, args); + vsnprintf(s, sizeof(s), fmt, args); printk(KERN_DEBUG "optcd: %s\n", s); va_end(args); } diff -puN drivers/cdrom/sbpcd.c~drivers-cdrom-trivial-vsnprintf-conversion drivers/cdrom/sbpcd.c --- a/drivers/cdrom/sbpcd.c~drivers-cdrom-trivial-vsnprintf-conversion +++ a/drivers/cdrom/sbpcd.c @@ -770,11 +770,10 @@ static void msg(int level, const char *f msgnum++; if (msgnum>99) msgnum=0; - sprintf(buf, MSG_LEVEL "%s-%d [%02d]: ", major_name, current_drive - D_S, msgnum); va_start(args, fmt); - vsprintf(&buf[18], fmt, args); + vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); - printk(buf); + printk(MSG_LEVEL "%s-%d [%02d]: %s", major_name, current_drive - D_S, msgnum, buf); #if KLOGD_PAUSE sbp_sleep(KLOGD_PAUSE); /* else messages get lost */ #endif /* KLOGD_PAUSE */ _