From 75d2637cbec81401d37305767939d53d9f409559 Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Wed, 10 Oct 2018 16:04:31 +0200 Subject: Tegra: fix potential one byte overflows when calling strncpy() Causes build failures with gcc 8. Signed-off-by: Rolf Eike Beer Acked-by: Marcel Ziswiler --- arch/arm/mach-tegra/devices.c | 3 +-- arch/arm/mach-tegra/tegra_emc_dt_parse.c | 7 ++++--- drivers/gpu/nvgpu/gk20a/gk20a_allocator.c | 4 ++-- drivers/misc/tegra-profiler/auth.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/arm/mach-tegra/devices.c b/arch/arm/mach-tegra/devices.c index 3b2665de9326..7d9c4220bc1f 100644 --- a/arch/arm/mach-tegra/devices.c +++ b/arch/arm/mach-tegra/devices.c @@ -2005,8 +2005,7 @@ void tegra_smmu_map_misc_device(struct device *dev) { struct dma_iommu_mapping *map = smmu_default_map[SYSTEM_PROTECTED].map; if (!strncmp(dummy_name, DUMMY_DEV_NAME, strlen(dummy_name))) { - strncpy(dummy_name, dev_name(dev), - DUMMY_DEV_MAX_NAME_SIZE); + strlcpy(dummy_name, dev_name(dev), sizeof(dummy_name)); arm_iommu_attach_device(dev, map); dev_info(dev, "Mapped the misc device\n"); return; diff --git a/arch/arm/mach-tegra/tegra_emc_dt_parse.c b/arch/arm/mach-tegra/tegra_emc_dt_parse.c index 001f2f429c88..670109457609 100644 --- a/arch/arm/mach-tegra/tegra_emc_dt_parse.c +++ b/arch/arm/mach-tegra/tegra_emc_dt_parse.c @@ -109,7 +109,8 @@ void *tegra_emc_dt_parse_pdata_comp(const char *emc_mode, continue; } #if defined(CONFIG_ARCH_TEGRA_12x_SOC) - strncpy(tables[i].src_name, source_name, 16); + strlcpy(tables[i].src_name, source_name, + sizeof(tables[i].src_name)); #else tables[i].src_name = source_name; #endif @@ -253,8 +254,8 @@ void *tegra_emc_dt_parse_pdata_comp(const char *emc_mode, iter->full_name); continue; } - strncpy(tables[i].table_id, dvfs_ver, - TEGRA12_MAX_TABLE_ID_LEN); + strlcpy(tables[i].table_id, dvfs_ver, + sizeof(tables[i].table_id)); ret = of_property_read_u32(iter, "nvidia,gk20a-min-mv", &u); diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c index 32c003b655a6..422670d43397 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.c @@ -842,9 +842,9 @@ gk20a_allocator_constrain(struct gk20a_allocator *a, int gk20a_allocator_init(struct gk20a_allocator *allocator, const char *name, u32 start, u32 len, u32 align) { - memset(allocator, 0, sizeof(struct gk20a_allocator)); + memset(allocator, 0, sizeof(*allocator)); - strncpy(allocator->name, name, 32); + strlcpy(allocator->name, name, sizeof(allocator->name)); allocator->block_cache = kmem_cache_create(allocator->name, diff --git a/drivers/misc/tegra-profiler/auth.c b/drivers/misc/tegra-profiler/auth.c index 7a89ba57f33e..51141ad5fac0 100644 --- a/drivers/misc/tegra-profiler/auth.c +++ b/drivers/misc/tegra-profiler/auth.c @@ -256,7 +256,7 @@ int quadd_auth_is_debuggable(const char *package_name) data->debug_app_uid = 0; data->response_value = 0; - strncpy(data->package_name, package_name, QUADD_MAX_PACKAGE_NAME); + strlcpy(data->package_name, package_name, sizeof(data->package_name)); mutex_unlock(&auth_ctx.lock); request_ready(); -- cgit v1.2.3