All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] pre-decrement in error paths considered harmful
@ 2016-02-09 20:11 ` Rasmus Villemoes
  0 siblings, 0 replies; 31+ messages in thread
From: Rasmus Villemoes @ 2016-02-09 20:11 UTC (permalink / raw)
  To: dri-devel, linux-kernel, intel-gfx, netdev, linux-rdma, linux-mm
  Cc: Rasmus Villemoes

There are a few instances of

  for (i = 0; i < FOO; ++i) {
    ret = do_stuff(i)
    if (ret)
      goto err;
  }
  ...
  err:
  while (--i)
    undo_stuff(i);

At best, this fails to undo_stuff for i==0, but if i==0 was the case
that failed, we'll end up with an "infinite" loop in the error path
doing nasty stuff.

These were found with a simple coccinelle script

@@
expression i;
identifier l;
statement S;
@@
* l:
* while (--i)
    S

(and there were no false positives).

There's no dependencies between the patches; I just wanted to include
a common cover letter with a little background info.

Rasmus Villemoes (5):
  drm/gma500: fix error path in gma_intel_setup_gmbus()
  drm/i915: fix error path in intel_setup_gmbus()
  net/mlx4: fix some error handling in mlx4_multi_func_init()
  net: sxgbe: fix error paths in sxgbe_platform_probe()
  mm/backing-dev.c: fix error path in wb_init()

 drivers/gpu/drm/gma500/intel_gmbus.c                | 2 +-
 drivers/gpu/drm/i915/intel_i2c.c                    | 2 +-
 drivers/net/ethernet/mellanox/mlx4/cmd.c            | 4 ++--
 drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c | 4 ++--
 mm/backing-dev.c                                    | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

-- 
2.1.4

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2016-03-28  2:40 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-09 20:11 [PATCH 0/5] pre-decrement in error paths considered harmful Rasmus Villemoes
2016-02-09 20:11 ` Rasmus Villemoes
2016-02-09 20:11 ` [PATCH 1/5] drm/gma500: fix error path in gma_intel_setup_gmbus() Rasmus Villemoes
2016-02-10  6:41   ` Andy Shevchenko
2016-02-10  6:41     ` Andy Shevchenko
2016-02-10  7:26     ` Daniel Vetter
2016-02-10  7:26       ` Daniel Vetter
2016-02-09 20:11 ` [PATCH 2/5] drm/i915: fix error path in intel_setup_gmbus() Rasmus Villemoes
2016-02-09 20:11   ` Rasmus Villemoes
2016-02-09 20:27   ` Jani Nikula
2016-02-09 20:27     ` Jani Nikula
2016-02-10  8:56     ` Jani Nikula
2016-02-10  8:56       ` Jani Nikula
2016-02-09 20:11 ` [PATCH 3/5] net/mlx4: fix some error handling in mlx4_multi_func_init() Rasmus Villemoes
2016-02-10  9:40   ` Yishai Hadas
2016-02-10 18:15     ` Rasmus Villemoes
2016-02-10 18:15       ` Rasmus Villemoes
2016-02-11  9:29       ` Jack Morgenstein
2016-02-11  9:29         ` Jack Morgenstein
2016-02-11 10:20         ` Jack Morgenstein
2016-02-11 16:02   ` Doug Ledford
2016-02-09 20:11 ` [PATCH 4/5] net: sxgbe: fix error paths in sxgbe_platform_probe() Rasmus Villemoes
2016-03-08 20:44   ` Rasmus Villemoes
2016-03-22 19:47     ` Rasmus Villemoes
2016-03-26 21:24       ` [PATCH] " Rasmus Villemoes
2016-03-27  8:22         ` Francois Romieu
2016-03-27 21:40           ` Rasmus Villemoes
2016-03-28  2:39           ` David Miller
2016-03-28  2:40         ` David Miller
2016-02-09 20:11 ` [PATCH 5/5] mm/backing-dev.c: fix error path in wb_init() Rasmus Villemoes
2016-02-09 20:11   ` Rasmus Villemoes

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.