From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH] ALSA: usb-audio: Fix out-of-bound error Date: Wed, 15 Nov 2017 10:16:18 +0100 Message-ID: References: <1510733261-28878-1-git-send-email-climbbb.kim@gmail.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Return-path: In-Reply-To: Sender: stable-owner@vger.kernel.org To: Jaejoong Kim Cc: Jaroslav Kysela , stable@vger.kernel.org, alsa-devel@alsa-project.org List-Id: alsa-devel@alsa-project.org On Wed, 15 Nov 2017 09:57:56 +0100, Jaejoong Kim wrote: > > diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c > index e630813..5a83c2c 100644 > --- a/sound/usb/mixer.c > +++ b/sound/usb/mixer.c > @@ -204,7 +204,8 @@ static int snd_usb_copy_string_desc(struct mixer_build > *state, > int index, char *buf, int maxlen) > { > int len = usb_string(state->chip->dev, index, buf, maxlen - 1); > - buf[len] = 0; > + if (len > 0) > + buf[len] = 0; > return len; I'd rather put an explicit error bail-out, i.e. diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 91bc8f18791e..296a63a9d09c 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -204,6 +204,10 @@ static int snd_usb_copy_string_desc(struct mixer_build *state, int index, char *buf, int maxlen) { int len = usb_string(state->chip->dev, index, buf, maxlen - 1); + + if (len < 0) + return len; + buf[len] = 0; return len; } thanks, Takashi