[PATCH][next] mm: shmem: Fix error checking on utf8_parse_version failures

Colin Ian King posted 1 patch 1 year, 2 months ago
mm/shmem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH][next] mm: shmem: Fix error checking on utf8_parse_version failures
Posted by Colin Ian King 1 year, 2 months ago
Currently the error check on the call to utf8_parse_version is always
false because version is an unsigned int and this can never be less
than zero. Because version is required to be an unsigned int, fix the
issue by casting it to int just for the error check.

Fixes: 58e55efd6c72 ("tmpfs: Add casefold lookup support")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
 mm/shmem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/shmem.c b/mm/shmem.c
index 7987deb2be9b..b69e1d8816fa 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -4377,7 +4377,7 @@ static int shmem_parse_opt_casefold(struct fs_context *fc, struct fs_parameter *
 				       "in the format: utf8-<version number>");
 
 		version = utf8_parse_version(version_str);
-		if (version < 0)
+		if ((int)version < 0)
 			return invalfc(fc, "Invalid UTF-8 version: %s", version_str);
 	}
 
-- 
2.39.5
Re: [PATCH][next] mm: shmem: Fix error checking on utf8_parse_version failures
Posted by André Almeida 1 year, 2 months ago
Hi Colin,

Em 12/11/2024 06:54, Colin Ian King escreveu:
> Currently the error check on the call to utf8_parse_version is always
> false because version is an unsigned int and this can never be less
> than zero. Because version is required to be an unsigned int, fix the
> issue by casting it to int just for the error check.

Why is it required to be an unsigned int?

> 
> Fixes: 58e55efd6c72 ("tmpfs: Add casefold lookup support")
> Signed-off-by: Colin Ian King <colin.i.king@gmail.com>

Another fix was already sent: 
https://lore.kernel.org/lkml/20241111-unsignedcompare1601569-v1-1-c4a9c3c75a52@gmail.com/
Re: [PATCH][next] mm: shmem: Fix error checking on utf8_parse_version failures
Posted by Colin King (gmail) 1 year, 2 months ago
On 12/11/2024 10:06, André Almeida wrote:
> Hi Colin,
> 
> Em 12/11/2024 06:54, Colin Ian King escreveu:
>> Currently the error check on the call to utf8_parse_version is always
>> false because version is an unsigned int and this can never be less
>> than zero. Because version is required to be an unsigned int, fix the
>> issue by casting it to int just for the error check.
> 
> Why is it required to be an unsigned int?

It's being passed to various functions that expect unsigned int, so I 
presume it was intended to be of that type.

Colin

> 
>>
>> Fixes: 58e55efd6c72 ("tmpfs: Add casefold lookup support")
>> Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
> 
> Another fix was already sent: https://lore.kernel.org/lkml/20241111- 
> unsignedcompare1601569-v1-1-c4a9c3c75a52@gmail.com/