summaryrefslogtreecommitdiff
path: root/drivers/fastboot
diff options
context:
space:
mode:
authorSean Anderson <seanga2@gmail.com>2021-03-11 00:15:44 -0500
committerTom Rini <trini@konsulko.com>2021-04-12 17:44:55 -0400
commit69a752983171c2983fc1f29c7cfa1844f41e5d8b (patch)
treead9e9b49513373d27ced4b86bb4637550acbbffc /drivers/fastboot
parentc4ac52f55d90bd46ade9db6f761638fdfdf26e16 (diff)
downloadu-boot-69a752983171c2983fc1f29c7cfa1844f41e5d8b.tar.gz
u-boot-69a752983171c2983fc1f29c7cfa1844f41e5d8b.tar.bz2
u-boot-69a752983171c2983fc1f29c7cfa1844f41e5d8b.zip
fastboot: Fix possible buffer overrun
This fixes several uses of strn(cpy|cat) which did not terminate their destinations properly. Fixes de1728ce4c ("fastboot: Allow u-boot-style partitions") Reported-by: Coverity Scan Signed-off-by: Sean Anderson <seanga2@gmail.com>
Diffstat (limited to 'drivers/fastboot')
-rw-r--r--drivers/fastboot/fb_mmc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/fastboot/fb_mmc.c b/drivers/fastboot/fb_mmc.c
index 8e74e50e91..2f3837e559 100644
--- a/drivers/fastboot/fb_mmc.c
+++ b/drivers/fastboot/fb_mmc.c
@@ -40,7 +40,7 @@ static int raw_part_get_info_by_name(struct blk_desc *dev_desc,
/* check for raw partition descriptor */
strcpy(env_desc_name, "fastboot_raw_partition_");
- strncat(env_desc_name, name, PART_NAME_LEN);
+ strlcat(env_desc_name, name, PART_NAME_LEN);
raw_part_desc = strdup(env_get(env_desc_name));
if (raw_part_desc == NULL)
return -ENODEV;
@@ -61,7 +61,7 @@ static int raw_part_get_info_by_name(struct blk_desc *dev_desc,
info->start = simple_strtoul(argv[0], NULL, 0);
info->size = simple_strtoul(argv[1], NULL, 0);
info->blksz = dev_desc->blksz;
- strncpy((char *)info->name, name, PART_NAME_LEN);
+ strlcpy((char *)info->name, name, PART_NAME_LEN);
if (raw_part_desc) {
if (strcmp(strsep(&raw_part_desc, " "), "mmcpart") == 0) {
@@ -114,7 +114,7 @@ static int part_get_info_by_name_or_alias(struct blk_desc **dev_desc,
/* check for alias */
strcpy(env_alias_name, "fastboot_partition_alias_");
- strncat(env_alias_name, name, PART_NAME_LEN);
+ strlcat(env_alias_name, name, PART_NAME_LEN);
aliased_part_name = env_get(env_alias_name);
if (aliased_part_name != NULL)
ret = do_get_part_info(dev_desc, aliased_part_name,