lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 15 Mar 2015 09:34:35 +0100 (CET) From: Fabian Frederick <fabf@...net.be> To: Jan Kara <jack@...e.cz> Cc: linux-kernel@...r.kernel.org Subject: Re: [PATCH 4/5 linux-next] udf: rename udf_get_filename() > On 14 March 2015 at 07:52 Jan Kara <jack@...e.cz> wrote: > > > On Tue 10-03-15 21:44:34, Fabian Frederick wrote: > > udf_readdir(), udf_find_entry() and udf_pc_to_char() use > > udf_get_filename to obtain name length. Give that function > > an appropriate name. > Hum, have you read what that function does? It actually converts the name > to a different format and returns converted length. So your name is IMHO > more confusing - it's as if sprintf() was called sprintf_length()... Not > applied. > > Honza Hi Jan, Ok for the name but AFAICS there's still a problem with error management in udf_get_filename(). We return 0 when not able to allocate filename and callsites don't seem to relate the real problem. Maybe we could either BUG_ON(!filename), BUG_ON(!unifilename) directly in udf_get_filename() or return -ENOMEM ? udf_readdir() could return -ENOMEM instead of 0 but functions like udf_find_entry() would need some updates ... Another solution would be to have length as argument and return error... Regards, Fabian > > > > > Signed-off-by: Fabian Frederick <fabf@...net.be> > > --- > > fs/udf/dir.c | 3 ++- > > fs/udf/namei.c | 3 ++- > > fs/udf/symlink.c | 7 ++++--- > > fs/udf/udfdecl.h | 4 ++-- > > fs/udf/unicode.c | 4 ++-- > > 5 files changed, 12 insertions(+), 9 deletions(-) > > > > diff --git a/fs/udf/dir.c b/fs/udf/dir.c > > index 05e90ed..edf4232 100644 > > --- a/fs/udf/dir.c > > +++ b/fs/udf/dir.c > > @@ -168,7 +168,8 @@ static int udf_readdir(struct file *file, struct > > dir_context *ctx) > > continue; > > } > > > > - flen = udf_get_filename(sb, nameptr, lfi, fname, UDF_NAME_LEN); > > + flen = udf_get_filename_length(sb, nameptr, lfi, fname, > > + UDF_NAME_LEN); > > if (!flen) > > continue; > > > > diff --git a/fs/udf/namei.c b/fs/udf/namei.c > > index 33b246b..189b98b 100644 > > --- a/fs/udf/namei.c > > +++ b/fs/udf/namei.c > > @@ -234,7 +234,8 @@ static struct fileIdentDesc *udf_find_entry(struct inode > > *dir, > > if (!lfi) > > continue; > > > > - flen = udf_get_filename(sb, nameptr, lfi, fname, UDF_NAME_LEN); > > + flen = udf_get_filename_length(sb, nameptr, lfi, fname, > > + UDF_NAME_LEN); > > if (flen && udf_match(flen, fname, child->len, child->name)) > > goto out_ok; > > } > > diff --git a/fs/udf/symlink.c b/fs/udf/symlink.c > > index ac10ca9..d986916a 100644 > > --- a/fs/udf/symlink.c > > +++ b/fs/udf/symlink.c > > @@ -80,9 +80,10 @@ static int udf_pc_to_char(struct super_block *sb, > > unsigned char *from, > > elen += pc->lengthComponentIdent; > > if (elen > fromlen) > > return -EIO; > > - comp_len = udf_get_filename(sb, pc->componentIdent, > > - pc->lengthComponentIdent, > > - p, tolen); > > + comp_len = udf_get_filename_length(sb, > > + pc->componentIdent, > > + pc->lengthComponentIdent, > > + p, tolen); > > p += comp_len; > > tolen -= comp_len; > > if (tolen == 0) > > diff --git a/fs/udf/udfdecl.h b/fs/udf/udfdecl.h > > index 47bb3f5..70dc260 100644 > > --- a/fs/udf/udfdecl.h > > +++ b/fs/udf/udfdecl.h > > @@ -211,8 +211,8 @@ udf_get_lb_pblock(struct super_block *sb, struct > > kernel_lb_addr *loc, > > } > > > > /* unicode.c */ > > -extern int udf_get_filename(struct super_block *, uint8_t *, int, uint8_t > > *, > > - int); > > +extern int udf_get_filename_length(struct super_block *, uint8_t *, int, > > + uint8_t *, int); > > extern int udf_put_filename(struct super_block *, const uint8_t *, uint8_t > >*, > > int); > > extern int udf_build_ustr(struct ustr *, dstring *, int); > > diff --git a/fs/udf/unicode.c b/fs/udf/unicode.c > > index b84fee3..209c0c7 100644 > > --- a/fs/udf/unicode.c > > +++ b/fs/udf/unicode.c > > @@ -334,8 +334,8 @@ try_again: > > return u_len + 1; > > } > > > > -int udf_get_filename(struct super_block *sb, uint8_t *sname, int slen, > > - uint8_t *dname, int dlen) > > +int udf_get_filename_length(struct super_block *sb, uint8_t *sname, int > > slen, > > + uint8_t *dname, int dlen) > > { > > struct ustr *filename, *unifilename; > > int len = 0; > > -- > > 1.9.1 > > > -- > Jan Kara <jack@...e.cz> > SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists