From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932652AbbDIIZY (ORCPT ); Thu, 9 Apr 2015 04:25:24 -0400 Received: from cantor2.suse.de ([195.135.220.15]:57186 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932441AbbDIIZU (ORCPT ); Thu, 9 Apr 2015 04:25:20 -0400 Date: Thu, 9 Apr 2015 10:25:15 +0200 From: Jan Kara To: Fabian Frederick Cc: linux-kernel@vger.kernel.org, Jan Kara Subject: Re: [PATCH V2 2/9 linux-next] udf: remove unnecessary test in udf_build_ustr_exact() Message-ID: <20150409082515.GB18044@quack.suse.cz> References: <1428521039-18491-1-git-send-email-fabf@skynet.be> <1428521039-18491-3-git-send-email-fabf@skynet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1428521039-18491-3-git-send-email-fabf@skynet.be> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed 08-04-15 21:23:52, Fabian Frederick wrote: > We can remove parameter checks: > > udf_build_ustr_exact() is only called by udf_get_filename() > which now assures dest is not NULL > > udf_find_entry() and udf_readdir() call udf_get_filename() > after checking sname > udf_symlink_filler() calls udf_pc_to_char() with sname=kmap(page). > > udf_find_entry() and udf_readdir() call udf_get_filename with UDF_NAME_LEN > udf_pc_to_char() with PAGE_SIZE > > Suggested-by: Jan Kara > Signed-off-by: Fabian Frederick Thanks. Added to my tree. Honza > --- > V2: Return -EIO if slen = 0 in udf_get_filename() > (suggested by Jan Kara) > > fs/udf/unicode.c | 14 +++++--------- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/fs/udf/unicode.c b/fs/udf/unicode.c > index 4911c1d..e2c079a 100644 > --- a/fs/udf/unicode.c > +++ b/fs/udf/unicode.c > @@ -68,17 +68,12 @@ int udf_build_ustr(struct ustr *dest, dstring *ptr, int size) > /* > * udf_build_ustr_exact > */ > -static int udf_build_ustr_exact(struct ustr *dest, dstring *ptr, int exactsize) > +static void udf_build_ustr_exact(struct ustr *dest, dstring *ptr, int exactsize) > { > - if ((!dest) || (!ptr) || (!exactsize)) > - return -1; > - > memset(dest, 0, sizeof(struct ustr)); > dest->u_cmpID = ptr[0]; > dest->u_len = exactsize - 1; > memcpy(dest->u_name, ptr + 1, exactsize - 1); > - > - return 0; > } > > /* > @@ -340,6 +335,9 @@ int udf_get_filename(struct super_block *sb, uint8_t *sname, int slen, > struct ustr *filename, *unifilename; > int ret = 0; > > + if (!slen) > + return -EIO; > + > filename = kmalloc(sizeof(struct ustr), GFP_NOFS); > if (!filename) > return -ENOMEM; > @@ -350,9 +348,7 @@ int udf_get_filename(struct super_block *sb, uint8_t *sname, int slen, > goto out1; > } > > - if (udf_build_ustr_exact(unifilename, sname, slen)) > - goto out2; > - > + udf_build_ustr_exact(unifilename, sname, slen); > if (UDF_QUERY_FLAG(sb, UDF_FLAG_UTF8)) { > if (!udf_CS0toUTF8(filename, unifilename)) { > udf_debug("Failed in udf_get_filename: sname = %s\n", > -- > 1.9.1 > -- Jan Kara SUSE Labs, CR