From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754048AbdGNMJm (ORCPT ); Fri, 14 Jul 2017 08:09:42 -0400 Received: from mout.kundenserver.de ([217.72.192.75]:52310 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753687AbdGNMJk (ORCPT ); Fri, 14 Jul 2017 08:09:40 -0400 From: Arnd Bergmann To: linux-kernel@vger.kernel.org, Sathya Prakash , Chaitra P B , Suganath Prabu Subramani , "James E.J. Bottomley" , "Martin K. Petersen" Cc: Greg Kroah-Hartman , Linus Torvalds , Guenter Roeck , akpm@linux-foundation.org, netdev@vger.kernel.org, "David S . Miller" , linux-scsi@vger.kernel.org, x86@kernel.org, Arnd Bergmann , Hannes Reinecke , Calvin Owens , Adam Manzanares , Bart Van Assche , James Bottomley , MPT-FusionLinux.pdl@broadcom.com Subject: [PATCH 03/22] scsi: mpt3sas: fix format overflow warning Date: Fri, 14 Jul 2017 14:06:55 +0200 Message-Id: <20170714120720.906842-4-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170714120720.906842-1-arnd@arndb.de> References: <20170714120720.906842-1-arnd@arndb.de> X-Provags-ID: V03:K0:ZAl+axRAaNJy5r7jWMOo3X6azDOyn9oP0ojg5+2IN0QdCyjmrZi 9LsQ9fB1s4V0DJvFSsEV470ZOxIk/tERn0bFQPXKH6rOMvgd4DEQHLNPfoMVK+Iu34qktSX iea91MwKWHJnBbQx8a+eluXFKhK1+QW0vTnSyMnzTzctZBs7MoxbyRkngzhPk98WcFdkLMT sua0XhBqtrezR8+8kOjpw== X-UI-Out-Filterresults: notjunk:1;V01:K0:wcIKB2Ug7hA=:p/7+76FywvdqHjWDNgt+Iv RE55SMrWHnQ7GGDVx5OyworTyO8i3h2MFZqPrdQmfzkekGd6FR3Vxsl5+cTSMhoUksYOPMUuY mMl3TCkzWoqFCFDgM3B8gq1CwR05cVdadZIKfVHyszWv7dEOZjBkD4PM8ISXGMnEiCM4NC8JU upKCqlQ//CKO8Q2zZR2IElSDo+0FO/l/UThTjZEyCbG9smcGHz29Ew2H+uCKUgmadYncRgSyC t1BPncqOJS2b8Yd8hUDyddxya5b8MCw4bCoGjDHTeBVt0WKUQhmkLaMvWk604v8x7LO2XUZ93 qeME5pW6DglYg/49WoGze0yljuqknfLD89c5SZSwdC85d2a4LKFT4XMjwPLCqaoPqtVLZlN0y +YMo3zV4N5tF0Brisez7EsJBm9aPNyp+H0DFUrGicO2to/o3Lw/xDts6xzrWdhzi0Aqhkx2v4 Yte0WMpZa1jukwNMfmkXDRGastU6GEcbwkpPtU1n34KLZpzeEiRL49QVFxp6n5BHw1v6L5eDQ C8jNZ7TNELJvsVJBRqLigi2e18hX9ZdAsBVJh42ZuJ1fjjg9qhNL4vvFLBSif7oVaclulccRE /OEuqSUKZFRWp88EpWyUOrY2EsQ5HW5QsUSvjJcZeLciiiJw/StyQubN47FWTEBAV3Ll2T8kn jPsZZNjOB9AAtbhr0JYv+h30I0qyXOyxbPvQqTRmrZPQgOkoqUNyOnzKT83qEZifjmc1bi1wQ X886o19/dBlG0g2Bk2DQ7lcV4W9Dag+PrDwEDQ== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We print the driver name into one string and then add and ID and copy it into a second string of the same length, at which point gcc complains about a possible overflow: drivers/scsi/mpt3sas/mpt3sas_scsih.c: In function '_scsih_probe': drivers/scsi/mpt3sas/mpt3sas_scsih.c:8884:21: error: '_cm' directive writing 3 bytes into a region of size between 1 and 32 [-Werror=format-overflow=] printf(ioc->name, "%s_cm%d", ioc->driver_name, ioc->id); ^~~~~~~~~ drivers/scsi/mpt3sas/mpt3sas_scsih.c:8884:21: note: directive argument in the range [0, 255] drivers/scsi/mpt3sas/mpt3sas_scsih.c:8884:2: note: 'sprintf' output between 5 and 38 bytes into a destination of size 32 sprintf(ioc->name, "%s_cm%d", ioc->driver_name, ioc->id); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Making the first string shorter is sufficient to avoid the warning here, as we know it can only contain either "mpt2sas" or "mpt3sas". Signed-off-by: Arnd Bergmann --- drivers/scsi/mpt3sas/mpt3sas_base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi/mpt3sas/mpt3sas_base.h index 099ab4ca7edf..a77bb7dc12b1 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.h +++ b/drivers/scsi/mpt3sas/mpt3sas_base.h @@ -970,7 +970,7 @@ struct MPT3SAS_ADAPTER { u8 id; int cpu_count; char name[MPT_NAME_LENGTH]; - char driver_name[MPT_NAME_LENGTH]; + char driver_name[MPT_NAME_LENGTH - 8]; char tmp_string[MPT_STRING_LENGTH]; struct pci_dev *pdev; Mpi2SystemInterfaceRegs_t __iomem *chip; -- 2.9.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Subject: [PATCH 03/22] scsi: mpt3sas: fix format overflow warning Date: Fri, 14 Jul 2017 14:06:55 +0200 Message-ID: <20170714120720.906842-4-arnd@arndb.de> References: <20170714120720.906842-1-arnd@arndb.de> Cc: Greg Kroah-Hartman , Linus Torvalds , Guenter Roeck , akpm@linux-foundation.org, netdev@vger.kernel.org, "David S . Miller" , linux-scsi@vger.kernel.org, x86@kernel.org, Arnd Bergmann , Hannes Reinecke , Calvin Owens , Adam Manzanares , Bart Van Assche , James Bottomley , MPT-FusionLinux.pdl@broadcom.com To: linux-kernel@vger.kernel.org, Sathya Prakash , Chaitra P B , Suganath Prabu Subramani , "James E.J. Bottomley" , "Martin K. Petersen" Return-path: In-Reply-To: <20170714120720.906842-1-arnd@arndb.de> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org We print the driver name into one string and then add and ID and copy it into a second string of the same length, at which point gcc complains about a possible overflow: drivers/scsi/mpt3sas/mpt3sas_scsih.c: In function '_scsih_probe': drivers/scsi/mpt3sas/mpt3sas_scsih.c:8884:21: error: '_cm' directive writing 3 bytes into a region of size between 1 and 32 [-Werror=format-overflow=] printf(ioc->name, "%s_cm%d", ioc->driver_name, ioc->id); ^~~~~~~~~ drivers/scsi/mpt3sas/mpt3sas_scsih.c:8884:21: note: directive argument in the range [0, 255] drivers/scsi/mpt3sas/mpt3sas_scsih.c:8884:2: note: 'sprintf' output between 5 and 38 bytes into a destination of size 32 sprintf(ioc->name, "%s_cm%d", ioc->driver_name, ioc->id); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Making the first string shorter is sufficient to avoid the warning here, as we know it can only contain either "mpt2sas" or "mpt3sas". Signed-off-by: Arnd Bergmann --- drivers/scsi/mpt3sas/mpt3sas_base.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi/mpt3sas/mpt3sas_base.h index 099ab4ca7edf..a77bb7dc12b1 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.h +++ b/drivers/scsi/mpt3sas/mpt3sas_base.h @@ -970,7 +970,7 @@ struct MPT3SAS_ADAPTER { u8 id; int cpu_count; char name[MPT_NAME_LENGTH]; - char driver_name[MPT_NAME_LENGTH]; + char driver_name[MPT_NAME_LENGTH - 8]; char tmp_string[MPT_STRING_LENGTH]; struct pci_dev *pdev; Mpi2SystemInterfaceRegs_t __iomem *chip; -- 2.9.0