Whamcloud - gitweb
AOSP: Fix a trivial type error
authorYi Kong <yikong@google.com>
Tue, 7 Jul 2020 14:32:12 +0000 (22:32 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 1 Oct 2020 21:42:28 +0000 (17:42 -0400)
Comparing unsigned int with ULONG_MAX is always false.

Signed-off-by: Yi Kong <yikong@google.com>
Change-Id: Iae02aad1bcb271d3468828977be288ad04333821
From AOSP commit: 757a4d672dae1a15c57f5f0705ba90ed007da7e6

contrib/android/e2fsdroid.c

index 1beb1e2..f5d24b8 100644 (file)
@@ -76,11 +76,12 @@ static int parse_ugid_map_entry(char* line, struct ugid_map_entry* result)
             token && num_tokens < 3;
             token = strtok_r(NULL, " ", &token_saveptr), ++num_tokens) {
                char* endptr = NULL;
-               *parsed[num_tokens] = strtoul(token, &endptr, 10);
-               if ((*parsed[num_tokens] == ULONG_MAX && errno) || *endptr) {
+               unsigned long t = strtoul(token, &endptr, 10);
+               if ((t == ULONG_MAX && errno) || (t > UINT_MAX) || *endptr) {
                        fprintf(stderr, "Malformed u/gid mapping line\n");
                        return 0;
                }
+               *parsed[num_tokens] = (unsigned int) t;
        }
        if (num_tokens < 3 || strtok_r(NULL, " ", &token_saveptr) != NULL) {
                fprintf(stderr, "Malformed u/gid mapping line\n");