diff options
author | Patrick Georgi <pgeorgi@google.com> | 2019-09-06 20:01:21 +0200 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-09-20 16:59:20 +0000 |
commit | 67d110ba64b1f8b8d7f1967d9cf5b80570286b8a (patch) | |
tree | 5a2b3d457dcfd7e56a033c309dd717d6cd409090 /futility | |
parent | 8a5d4a907b8a502405bc621a4322a2f7f6e8b8de (diff) | |
download | vboot-67d110ba64b1f8b8d7f1967d9cf5b80570286b8a.tar.gz |
futility/updater: clamp revision number
Found by Coverity Scan #198901
BUG=none
BRANCH=none
TEST=none
Change-Id: I6ebf5caa286bd64cddaa589a9e14f93185afbf90
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1789710
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Tested-by: Patrick Georgi <pgeorgi@chromium.org>
Commit-Queue: Patrick Georgi <pgeorgi@chromium.org>
Diffstat (limited to 'futility')
-rw-r--r-- | futility/updater.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/futility/updater.c b/futility/updater.c index 9e54aa6c..9d2d3921 100644 --- a/futility/updater.c +++ b/futility/updater.c @@ -7,6 +7,7 @@ #include <assert.h> #include <ctype.h> +#include <limits.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -229,12 +230,19 @@ static int host_get_fw_vboot2(void) static int host_get_platform_version(void) { char *result = host_shell("mosys platform version"); - int rev = -1; + long rev = -1; /* Result should be 'revN' */ if (strncmp(result, STR_REV, strlen(STR_REV)) == 0) rev = strtol(result + strlen(STR_REV), NULL, 0); - VB2_DEBUG("Raw data = [%s], parsed version is %d\n", result, rev); + + /* we should never have that large versions, + * but clamp just to be sure + */ + if (rev > INT_MAX) + rev = INT_MAX; + + VB2_DEBUG("Raw data = [%s], parsed version is %ld\n", result, rev); free(result); return rev; |