summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util/ectool.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/util/ectool.c b/util/ectool.c
index 3c42045cda..dedb617cf9 100644
--- a/util/ectool.c
+++ b/util/ectool.c
@@ -245,11 +245,11 @@ static uint32_t read_mapped_mem32(uint8_t offset)
return val;
}
-static int read_mapped_string(uint8_t offset, char *buffer)
+static int read_mapped_string(uint8_t offset, char *buffer, int max_size)
{
int ret;
- ret = ec_readmem(offset, 0, buffer);
+ ret = ec_readmem(offset, max_size, buffer);
if (ret <= 0) {
fprintf(stderr, "failure in %s(): %d\n", __func__, ret);
exit(1);
@@ -2769,22 +2769,26 @@ int cmd_battery(int argc, char *argv[])
printf("Battery info:\n");
- rv = read_mapped_string(EC_MEMMAP_BATT_MFGR, batt_text);
+ rv = read_mapped_string(EC_MEMMAP_BATT_MFGR, batt_text,
+ sizeof(batt_text));
if (rv < 0 || !is_string_printable(batt_text))
goto cmd_error;
printf(" OEM name: %s\n", batt_text);
- rv = read_mapped_string(EC_MEMMAP_BATT_MODEL, batt_text);
+ rv = read_mapped_string(EC_MEMMAP_BATT_MODEL, batt_text,
+ sizeof(batt_text));
if (rv < 0 || !is_string_printable(batt_text))
goto cmd_error;
printf(" Model number: %s\n", batt_text);
- rv = read_mapped_string(EC_MEMMAP_BATT_TYPE, batt_text);
+ rv = read_mapped_string(EC_MEMMAP_BATT_TYPE, batt_text,
+ sizeof(batt_text));
if (rv < 0 || !is_string_printable(batt_text))
goto cmd_error;
printf(" Chemistry : %s\n", batt_text);
- rv = read_mapped_string(EC_MEMMAP_BATT_SERIAL, batt_text);
+ rv = read_mapped_string(EC_MEMMAP_BATT_SERIAL, batt_text,
+ sizeof(batt_text));
printf(" Serial number: %s\n", batt_text);
val = read_mapped_mem32(EC_MEMMAP_BATT_DCAP);