From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH v2 6/7] topology: Add support for parsing vendor tuples Date: Wed, 30 Mar 2016 09:35:31 +0200 Message-ID: References: <6ceb0ce804d89c8d9cac5a1c80f1364041a8590f.1459321387.git.mengdong.lin@linux.intel.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id BCD7C2605C3 for ; Wed, 30 Mar 2016 09:35:32 +0200 (CEST) In-Reply-To: <6ceb0ce804d89c8d9cac5a1c80f1364041a8590f.1459321387.git.mengdong.lin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: mengdong.lin@linux.intel.com Cc: alsa-devel@alsa-project.org, vinod.koul@intel.com, mengdong.lin@intel.com, broonie@kernel.org, rakesh.a.ughreja@intel.com, liam.r.girdwood@intel.com, hardik.t.shah@intel.com, subhransu.s.prusty@intel.com List-Id: alsa-devel@alsa-project.org On Wed, 30 Mar 2016 09:11:17 +0200, mengdong.lin@linux.intel.com wrote: > > + switch (type) { > + case SND_SOC_TPLG_TUPLE_TYPE_UUID: > + len = strlen(value); > + if (len > 16 || len == 0) { > + SNDERR("error: tuple %s: invalid uuid\n", id); > + goto err; > + } > + > + memcpy(tuple->uuid, value, 16); This may still overflow :) How about simply using elem_copy_text()? > + case SND_SOC_TPLG_TUPLE_TYPE_BYTE: > + case SND_SOC_TPLG_TUPLE_TYPE_SHORT: > + case SND_SOC_TPLG_TUPLE_TYPE_WORD: > + tuple_val = strtol(value, NULL, 0); > + if (tuple_val == LONG_MIN || tuple_val == LONG_MAX > + || (type == SND_SOC_TPLG_TUPLE_TYPE_WORD > + && tuple_val > 0xffffffff) Is the check correct on 32bit architecture? > + || (type == SND_SOC_TPLG_TUPLE_TYPE_SHORT > + && tuple_val > 0xffff) > + || (type == SND_SOC_TPLG_TUPLE_TYPE_BYTE > + && tuple_val > 0xff)) { Also, what about negative values? Takashi