diff mbox

edac: xgene: Fix possible sprintf overflow issue

Message ID 1443116287-11752-1-git-send-email-lho@apm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Loc Ho Sept. 24, 2015, 5:38 p.m. UTC
Replace sprintf with snprintf to avoid possible string array overflow.

Signed-off-by: Loc Ho <lho@apm.com>
---
 drivers/edac/xgene_edac.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

Comments

Borislav Petkov Sept. 25, 2015, 1:45 p.m. UTC | #1
On Thu, Sep 24, 2015 at 10:38:07AM -0700, Loc Ho wrote:
> Replace sprintf with snprintf to avoid possible string array overflow.
> 
> Signed-off-by: Loc Ho <lho@apm.com>
> ---
>  drivers/edac/xgene_edac.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/edac/xgene_edac.c b/drivers/edac/xgene_edac.c
> index 37121e8..dfa13bb 100644
> --- a/drivers/edac/xgene_edac.c
> +++ b/drivers/edac/xgene_edac.c
> @@ -879,7 +879,7 @@ xgene_edac_pmd_create_debugfs_nodes(struct edac_device_ctl_info *edac_dev)
>  	if (!IS_ENABLED(CONFIG_EDAC_DEBUG) || !ctx->edac->dfs)
>  		return;
>  
> -	sprintf(name, "PMD%d", ctx->pmd);
> +	snprintf(name, sizeof(name), "PMD%d", ctx->pmd);
>  	dbgfs_dir = edac_debugfs_create_dir_at(name, ctx->edac->dfs);
>  	if (!dbgfs_dir)
>  		return;
> @@ -923,7 +923,7 @@ static int xgene_edac_pmd_add(struct xgene_edac *edac, struct device_node *np,
>  		goto err_group;
>  	}
>  
> -	sprintf(edac_name, "l2c%d", pmd);
> +	snprintf(edac_name, sizeof(edac_name), "l2c%d", pmd);
>  	edac_dev = edac_device_alloc_ctl_info(sizeof(*ctx),
>  					      edac_name, 1, "l2c", 1, 2, NULL,
>  					      0, edac_device_alloc_index());
> @@ -1183,7 +1183,7 @@ xgene_edac_l3_create_debugfs_nodes(struct edac_device_ctl_info *edac_dev)
>  	if (!IS_ENABLED(CONFIG_EDAC_DEBUG) || !ctx->edac->dfs)
>  		return;
>  
> -	sprintf(name, "l3c%d", ctx->edac_idx);
> +	snprintf(name, sizeof(name), "l3c%d", ctx->edac_idx);
>  	dbgfs_dir = edac_debugfs_create_dir_at(name, ctx->edac->dfs);
>  	if (!dbgfs_dir)
>  		return;

All 5 applied.

I've merged the last hunk changing xgene_edac_l3_create_debugfs_nodes
into the second patch which adds the L3 support.

Thanks.
Loc Ho Sept. 25, 2015, 5:52 p.m. UTC | #2
Hi,

>
> All 5 applied.
>
> I've merged the last hunk changing xgene_edac_l3_create_debugfs_nodes
> into the second patch which adds the L3 support.


Thanks you... Next I would like to get the ACPI APEI supported. But
unlike x86 which as NMI interface, APM hardware don't support this NMI
interface. In order to make this works, we need an method to trigger
the OS to indicate that the APEI table is available. For this, we are
thinking about writing an separate APEI driver that wires up the IRQ
to trigger the OS. Before we get going with this, I would like to run
by you to see if you have any suggestion?

-Loc
Borislav Petkov Sept. 26, 2015, 8:38 a.m. UTC | #3
On Fri, Sep 25, 2015 at 10:52:23AM -0700, Loc Ho wrote:
> Thanks you... Next I would like to get the ACPI APEI supported. But
> unlike x86 which as NMI interface, APM hardware don't support this NMI
> interface. In order to make this works, we need an method to trigger
> the OS to indicate that the APEI table is available. For this, we are
> thinking about writing an separate APEI driver that wires up the IRQ
> to trigger the OS. Before we get going with this, I would like to run
> by you to see if you have any suggestion?

Well, AFAIR, there are efforts going on already for this on ARM64:

https://lkml.kernel.org/r/1439555753-11974-1-git-send-email-fu.wei@linaro.org

Maybe test those first and possibly extend...
diff mbox

Patch

diff --git a/drivers/edac/xgene_edac.c b/drivers/edac/xgene_edac.c
index 37121e8..dfa13bb 100644
--- a/drivers/edac/xgene_edac.c
+++ b/drivers/edac/xgene_edac.c
@@ -879,7 +879,7 @@  xgene_edac_pmd_create_debugfs_nodes(struct edac_device_ctl_info *edac_dev)
 	if (!IS_ENABLED(CONFIG_EDAC_DEBUG) || !ctx->edac->dfs)
 		return;
 
-	sprintf(name, "PMD%d", ctx->pmd);
+	snprintf(name, sizeof(name), "PMD%d", ctx->pmd);
 	dbgfs_dir = edac_debugfs_create_dir_at(name, ctx->edac->dfs);
 	if (!dbgfs_dir)
 		return;
@@ -923,7 +923,7 @@  static int xgene_edac_pmd_add(struct xgene_edac *edac, struct device_node *np,
 		goto err_group;
 	}
 
-	sprintf(edac_name, "l2c%d", pmd);
+	snprintf(edac_name, sizeof(edac_name), "l2c%d", pmd);
 	edac_dev = edac_device_alloc_ctl_info(sizeof(*ctx),
 					      edac_name, 1, "l2c", 1, 2, NULL,
 					      0, edac_device_alloc_index());
@@ -1183,7 +1183,7 @@  xgene_edac_l3_create_debugfs_nodes(struct edac_device_ctl_info *edac_dev)
 	if (!IS_ENABLED(CONFIG_EDAC_DEBUG) || !ctx->edac->dfs)
 		return;
 
-	sprintf(name, "l3c%d", ctx->edac_idx);
+	snprintf(name, sizeof(name), "l3c%d", ctx->edac_idx);
 	dbgfs_dir = edac_debugfs_create_dir_at(name, ctx->edac->dfs);
 	if (!dbgfs_dir)
 		return;