i915: fix error path leak in intel_sdvo_write_cmd
authorAlan Cox <alan@linux.intel.com>
Wed, 25 Jul 2012 12:51:04 +0000 (13:51 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 26 Jul 2012 07:50:04 +0000 (09:50 +0200)
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_sdvo.c

index 26a6a4d0d0788b536de65f3b4ca6261768115179..d172e9873131cc708a5351fdec3cc690a73cabcd 100644 (file)
@@ -444,13 +444,16 @@ static bool intel_sdvo_write_cmd(struct intel_sdvo *intel_sdvo, u8 cmd,
        struct i2c_msg *msgs;
        int i, ret = true;
 
+        /* Would be simpler to allocate both in one go ? */        
        buf = (u8 *)kzalloc(args_len * 2 + 2, GFP_KERNEL);
        if (!buf)
                return false;
 
        msgs = kcalloc(args_len + 3, sizeof(*msgs), GFP_KERNEL);
-       if (!msgs)
+       if (!msgs) {
+               kfree(buf);
                return false;
+        }
 
        intel_sdvo_debug_write(intel_sdvo, cmd, args, args_len);