udf: remove unnecessary test in udf_build_ustr_exact()
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 <jack@suse.cz> Signed-off-by: Fabian Frederick <fabf@skynet.be> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
5ceb8b554d
commit
31f2566f33
@ -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",
|
||||
|
Loading…
Reference in New Issue
Block a user