mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-16 17:23:55 +08:00
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
|
* 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));
|
memset(dest, 0, sizeof(struct ustr));
|
||||||
dest->u_cmpID = ptr[0];
|
dest->u_cmpID = ptr[0];
|
||||||
dest->u_len = exactsize - 1;
|
dest->u_len = exactsize - 1;
|
||||||
memcpy(dest->u_name, ptr + 1, 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;
|
struct ustr *filename, *unifilename;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
|
if (!slen)
|
||||||
|
return -EIO;
|
||||||
|
|
||||||
filename = kmalloc(sizeof(struct ustr), GFP_NOFS);
|
filename = kmalloc(sizeof(struct ustr), GFP_NOFS);
|
||||||
if (!filename)
|
if (!filename)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@ -350,9 +348,7 @@ int udf_get_filename(struct super_block *sb, uint8_t *sname, int slen,
|
|||||||
goto out1;
|
goto out1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (udf_build_ustr_exact(unifilename, sname, slen))
|
udf_build_ustr_exact(unifilename, sname, slen);
|
||||||
goto out2;
|
|
||||||
|
|
||||||
if (UDF_QUERY_FLAG(sb, UDF_FLAG_UTF8)) {
|
if (UDF_QUERY_FLAG(sb, UDF_FLAG_UTF8)) {
|
||||||
if (!udf_CS0toUTF8(filename, unifilename)) {
|
if (!udf_CS0toUTF8(filename, unifilename)) {
|
||||||
udf_debug("Failed in udf_get_filename: sname = %s\n",
|
udf_debug("Failed in udf_get_filename: sname = %s\n",
|
||||||
|
Loading…
Reference in New Issue
Block a user