From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751915AbcCHXNZ (ORCPT ); Tue, 8 Mar 2016 18:13:25 -0500 Received: from mail-io0-f176.google.com ([209.85.223.176]:33041 "EHLO mail-io0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751826AbcCHXNR (ORCPT ); Tue, 8 Mar 2016 18:13:17 -0500 MIME-Version: 1.0 In-Reply-To: <1457469654-17059-1-git-send-email-linux@rasmusvillemoes.dk> References: <1457469654-17059-1-git-send-email-linux@rasmusvillemoes.dk> Date: Tue, 8 Mar 2016 15:13:16 -0800 X-Google-Sender-Auth: iF1FKO-HruP9eo5QZySpbnEri_c Message-ID: Subject: Re: [RFC 0/7] eliminate snprintf with overlapping src and dst From: Kees Cook To: Rasmus Villemoes Cc: Andrew Morton , LKML Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 8, 2016 at 12:40 PM, Rasmus Villemoes wrote: > Doing snprintf(buf, len, "%s...", buf, ...) for appending to a buffer > currently works, but it is somewhat fragile, and any other overlap > between source and destination buffers would be a definite bug. This > is an attempt at eliminating the relatively few occurences of this > pattern in the kernel. > > I could use another set of eyes on all of these. The drm/amdkfd patch > is unfortunately rather large, but I couldn't find a better way to do > this. Best alternative would be to have the macros just use side-effects to bump "ret" without passing it in, etc, but that's ugly/fragile, so I'd agree: what you have is best. Consider all the changes: Reviewed-by: Kees Cook -Kees > > Rasmus Villemoes (7): > drm/amdkfd: avoid fragile and inefficient snprintf use > Input: joystick - avoid fragile snprintf use > leds: avoid fragile sprintf use > drivers/media/pci/zoran: avoid fragile snprintf use > wlcore: avoid fragile snprintf use > [media] ati_remote: avoid fragile snprintf use > USB: usbatm: avoid fragile and inefficient snprintf use > > drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 168 +++++++++++++++--------------- > drivers/input/joystick/analog.c | 8 +- > drivers/leds/led-class-flash.c | 3 +- > drivers/media/pci/zoran/videocodec.c | 5 +- > drivers/media/rc/ati_remote.c | 11 +- > drivers/net/wireless/ti/wlcore/boot.c | 12 ++- > drivers/usb/atm/usbatm.c | 11 +- > 7 files changed, 110 insertions(+), 108 deletions(-) > > -- > 2.1.4 > -- Kees Cook Chrome OS & Brillo Security