From b1a780ed7bc909026eab3f7318b2eafcff7d3c67 Mon Sep 17 00:00:00 2001 From: Yi Kong Date: Tue, 7 Jul 2020 22:32:12 +0800 Subject: [PATCH] AOSP: Fix a trivial type error Comparing unsigned int with ULONG_MAX is always false. Signed-off-by: Yi Kong Change-Id: Iae02aad1bcb271d3468828977be288ad04333821 From AOSP commit: 757a4d672dae1a15c57f5f0705ba90ed007da7e6 --- contrib/android/e2fsdroid.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/contrib/android/e2fsdroid.c b/contrib/android/e2fsdroid.c index 1beb1e2..f5d24b8 100644 --- a/contrib/android/e2fsdroid.c +++ b/contrib/android/e2fsdroid.c @@ -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"); -- 1.8.3.1