All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	Mauro Carvalho Chehab <mchehab@s-opensource.com>
Subject: [PATCH 3.18 32/35] [media] ttpci: address stringop overflow warning
Date: Fri,  6 Oct 2017 11:25:12 +0200	[thread overview]
Message-ID: <20171006092404.092114065@linuxfoundation.org> (raw)
In-Reply-To: <20171006092402.810400570@linuxfoundation.org>

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Arnd Bergmann <arnd@arndb.de>

commit 69d3973af1acd4c0989ec8218c05f12d303cd7cf upstream.

gcc-7.0.1 warns about old code in ttpci:

In file included from drivers/media/pci/ttpci/av7110.c:63:0:
In function 'irdebi.isra.2',
    inlined from 'start_debi_dma' at drivers/media/pci/ttpci/av7110.c:376:3,
    inlined from 'gpioirq' at drivers/media/pci/ttpci/av7110.c:659:3:
drivers/media/pci/ttpci/av7110_hw.h:406:3: warning: 'memcpy': specified size between 18446744071562067968 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
   memcpy(av7110->debi_virt, (char *) &res, count);
In function 'irdebi.isra.2',
    inlined from 'start_debi_dma' at drivers/media/pci/ttpci/av7110.c:376:3,
    inlined from 'gpioirq' at drivers/media/pci/ttpci/av7110.c:668:3:
drivers/media/pci/ttpci/av7110_hw.h:406:3: warning: 'memcpy': specified size between 18446744071562067968 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
   memcpy(av7110->debi_virt, (char *) &res, count);

Apparently, 'count' can be negative here, which will then get turned
into a giant size argument for memcpy. Changing the sizes to 'unsigned
int' instead seems safe as we already check for maximum sizes, and it
also simplifies the code a bit.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/pci/ttpci/av7110_hw.c |    8 ++++----
 drivers/media/pci/ttpci/av7110_hw.h |   12 ++++++------
 2 files changed, 10 insertions(+), 10 deletions(-)

--- a/drivers/media/pci/ttpci/av7110_hw.c
+++ b/drivers/media/pci/ttpci/av7110_hw.c
@@ -56,11 +56,11 @@
    by Nathan Laredo <laredo@gnu.org> */
 
 int av7110_debiwrite(struct av7110 *av7110, u32 config,
-		     int addr, u32 val, int count)
+		     int addr, u32 val, unsigned int count)
 {
 	struct saa7146_dev *dev = av7110->dev;
 
-	if (count <= 0 || count > 32764) {
+	if (count > 32764) {
 		printk("%s: invalid count %d\n", __func__, count);
 		return -1;
 	}
@@ -78,12 +78,12 @@ int av7110_debiwrite(struct av7110 *av71
 	return 0;
 }
 
-u32 av7110_debiread(struct av7110 *av7110, u32 config, int addr, int count)
+u32 av7110_debiread(struct av7110 *av7110, u32 config, int addr, unsigned int count)
 {
 	struct saa7146_dev *dev = av7110->dev;
 	u32 result = 0;
 
-	if (count > 32764 || count <= 0) {
+	if (count > 32764) {
 		printk("%s: invalid count %d\n", __func__, count);
 		return 0;
 	}
--- a/drivers/media/pci/ttpci/av7110_hw.h
+++ b/drivers/media/pci/ttpci/av7110_hw.h
@@ -377,14 +377,14 @@ extern int av7110_fw_request(struct av71
 
 /* DEBI (saa7146 data extension bus interface) access */
 extern int av7110_debiwrite(struct av7110 *av7110, u32 config,
-			    int addr, u32 val, int count);
+			    int addr, u32 val, unsigned int count);
 extern u32 av7110_debiread(struct av7110 *av7110, u32 config,
-			   int addr, int count);
+			   int addr, unsigned int count);
 
 
 /* DEBI during interrupt */
 /* single word writes */
-static inline void iwdebi(struct av7110 *av7110, u32 config, int addr, u32 val, int count)
+static inline void iwdebi(struct av7110 *av7110, u32 config, int addr, u32 val, unsigned int count)
 {
 	av7110_debiwrite(av7110, config, addr, val, count);
 }
@@ -397,7 +397,7 @@ static inline void mwdebi(struct av7110
 	av7110_debiwrite(av7110, config, addr, 0, count);
 }
 
-static inline u32 irdebi(struct av7110 *av7110, u32 config, int addr, u32 val, int count)
+static inline u32 irdebi(struct av7110 *av7110, u32 config, int addr, u32 val, unsigned int count)
 {
 	u32 res;
 
@@ -408,7 +408,7 @@ static inline u32 irdebi(struct av7110 *
 }
 
 /* DEBI outside interrupts, only for count <= 4! */
-static inline void wdebi(struct av7110 *av7110, u32 config, int addr, u32 val, int count)
+static inline void wdebi(struct av7110 *av7110, u32 config, int addr, u32 val, unsigned int count)
 {
 	unsigned long flags;
 
@@ -417,7 +417,7 @@ static inline void wdebi(struct av7110 *
 	spin_unlock_irqrestore(&av7110->debilock, flags);
 }
 
-static inline u32 rdebi(struct av7110 *av7110, u32 config, int addr, u32 val, int count)
+static inline u32 rdebi(struct av7110 *av7110, u32 config, int addr, u32 val, unsigned int count)
 {
 	unsigned long flags;
 	u32 res;

  parent reply	other threads:[~2017-10-06  9:26 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-06  9:24 [PATCH 3.18 00/35] 3.18.74-stable review Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 01/35] drm: bridge: add DT bindings for TI ths8135 Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 02/35] RDS: RDMA: Fix the composite message user notification Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 03/35] MIPS: Ensure bss section ends on a long-aligned address Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 04/35] MIPS: kexec: Do not reserve invalid crashkernel memory on boot Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 06/35] hwmon: (gl520sm) Fix overflows and crash seen when writing into limit attributes Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 07/35] ARM: 8635/1: nommu: allow enabling REMAP_VECTORS_TO_RAM Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 08/35] tty: goldfish: Fix a parameter of a call to free_irq Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 09/35] IB/ipoib: Fix deadlock over vlan_mutex Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 10/35] IB/ipoib: rtnl_unlock can not come after free_netdev Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 11/35] IB/ipoib: Replace list_del of the neigh->list with list_del_init Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 12/35] USB: serial: mos7720: fix control-message error handling Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 13/35] USB: serial: mos7840: " Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 14/35] pinctrl: mvebu: Use seq_puts() in mvebu_pinconf_group_dbg_show() Greg Kroah-Hartman
2017-10-06  9:32   ` Joe Perches
2017-10-06  9:42     ` Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 15/35] partitions/efi: Fix integer overflow in GPT size calculation Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 16/35] audit: log 32-bit socketcalls Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 17/35] net: core: Prevent from dereferencing null pointer when releasing SKB Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 18/35] net/packet: check length in getsockopt() called with PACKET_HDRLEN Greg Kroah-Hartman
2017-10-06  9:24 ` [PATCH 3.18 19/35] team: fix memory leaks Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 21/35] mmc: sdio: fix alignment issue in struct sdio_func Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 22/35] netfilter: invoke synchronize_rcu after set the _hook_ to NULL Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 23/35] [media] exynos-gsc: Do not swap cb/cr for semi planar formats Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 24/35] netfilter: nfnl_cthelper: fix incorrect helper->expect_class_max Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 25/35] parisc: perf: Fix potential NULL pointer dereference Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 26/35] rds: ib: add error handle Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 27/35] md/raid10: submit bio directly to replacement disk Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 28/35] xfs: remove kmem_zalloc_greedy Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 29/35] libata: transport: Remove circular dependency at free time Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 30/35] IB/qib: fix false-postive maybe-uninitialized warning Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 31/35] ALSA: au88x0: avoid theoretical uninitialized access Greg Kroah-Hartman
2017-10-06  9:25 ` Greg Kroah-Hartman [this message]
2017-10-06  9:25 ` [PATCH 3.18 33/35] staging: nvec: remove duplicated const Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 34/35] crypto: algif_skcipher - Load TX SG list after waiting Greg Kroah-Hartman
2017-10-06  9:25 ` [PATCH 3.18 35/35] mpi: Fix NULL ptr dereference in mpi_powm() [ver #3] Greg Kroah-Hartman
2017-10-06 14:03 ` [PATCH 3.18 00/35] 3.18.74-stable review Guenter Roeck
2017-10-07  9:38   ` Greg Kroah-Hartman
2017-10-06 17:30 ` Shuah Khan
2017-10-07  9:04   ` Greg Kroah-Hartman
2017-10-07  9:40 ` Greg Kroah-Hartman
2017-10-07 14:43   ` Guenter Roeck
2017-10-08  7:20     ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171006092404.092114065@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=arnd@arndb.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mchehab@s-opensource.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.