Skip to contentSkip to conversation

drm: atmel-hlcdc: fix a NULL check

PATCH In review Dan Carpenter 3 participants 4 messages Apr 25, 2016

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drm: atmel-hlcdc: fix a NULL check

If kmalloc() returned NULL we would end up dereferencing "state" a couple lines later.

drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c +3 -2
index 8df0aaf..867069b 100644
@@ -415,8 +415,9 @@ atmel_hlcdc_crtc_duplicate_state(struct drm_crtc *crtc)
 		return NULL;
 
 	state = kmalloc(sizeof(*state), GFP_KERNEL);
-	if (state)
-		__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
+	if (!state)
+		return NULL;
+	__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
 
 	cur = drm_crtc_state_to_atmel_hlcdc_crtc_state(crtc->state);
 	state->output_mode = cur->output_mode;
Acked-by on v1 1/1
#1 lore raw
Quoted 4 lines · On Mon, 25 Apr 2016 12:04:54 +0300 Dan Carpenter <[email protected]>…

If kmalloc() returned NULL we would end up dereferencing "state" a couple lines later.

Thanks,

Boris

Quoted 17 lines
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c +3 -2
index 8df0aaf..867069b 100644
@@ -415,8 +415,9 @@ atmel_hlcdc_crtc_duplicate_state(struct drm_crtc *crtc)
 		return NULL;
 
 	state = kmalloc(sizeof(*state), GFP_KERNEL);
-	if (state)
-		__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
+	if (!state)
+		return NULL;
+	__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
 
 	cur = drm_crtc_state_to_atmel_hlcdc_crtc_state(crtc->state);
 	state->output_mode = cur->output_mode;
Signature · 3 lines
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#3 lore raw
In reply to Dan Carpenter

Hi Daniel,

Quoted 2 lines · On Mon, 25 Apr 2016 12:04:54 +0300 Dan Carpenter <[email protected]>…

If kmalloc() returned NULL we would end up dereferencing "state" a couple lines later.

Can you take this patch in drm-misc, or should I send a PR?

Regards,

Boris

Quoted 19 lines
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c +3 -2
index 8df0aaf..867069b 100644
@@ -415,8 +415,9 @@ atmel_hlcdc_crtc_duplicate_state(struct drm_crtc *crtc)
 		return NULL;
 
 	state = kmalloc(sizeof(*state), GFP_KERNEL);
-	if (state)
-		__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
+	if (!state)
+		return NULL;
+	__drm_atomic_helper_crtc_duplicate_state(crtc, &state->base);
 
 	cur = drm_crtc_state_to_atmel_hlcdc_crtc_state(crtc->state);
 	state->output_mode = cur->output_mode;
Signature · 3 lines
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com