summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2019-09-06 20:01:21 +0200
committerCommit Bot <commit-bot@chromium.org>2019-09-20 16:59:20 +0000
commit67d110ba64b1f8b8d7f1967d9cf5b80570286b8a (patch)
tree5a2b3d457dcfd7e56a033c309dd717d6cd409090
parent8a5d4a907b8a502405bc621a4322a2f7f6e8b8de (diff)
downloadvboot-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>
-rw-r--r--futility/updater.c12
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;