Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] solo6x10: fix potential null dereference

drivers/media/pci/solo6x10/solo6x10-disp.c:221 solo_set_motion_block() error: potential null dereference
'buf'. (kzalloc returns null)

Also propagate this error up the chain.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>

authored by

Hans Verkuil and committed by
Mauro Carvalho Chehab
0a128308 9c9cb1fa

+7 -4
+2
drivers/media/pci/solo6x10/solo6x10-disp.c
··· 216 216 int ret = 0; 217 217 218 218 buf = kzalloc(size, GFP_KERNEL); 219 + if (buf == NULL) 220 + return -ENOMEM; 219 221 for (y = 0; y < SOLO_MOTION_SZ; y++) { 220 222 for (x = 0; x < SOLO_MOTION_SZ; x++) 221 223 buf[x] = cpu_to_le16(thresholds[y * SOLO_MOTION_SZ + x]);
+5 -4
drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c
··· 1137 1137 solo_enc->motion_enabled = ctrl->val > V4L2_DETECT_MD_MODE_DISABLED; 1138 1138 if (ctrl->val) { 1139 1139 if (solo_enc->motion_global) 1140 - solo_set_motion_threshold(solo_dev, solo_enc->ch, 1140 + err = solo_set_motion_threshold(solo_dev, solo_enc->ch, 1141 1141 solo_enc->motion_thresh); 1142 1142 else 1143 - solo_set_motion_block(solo_dev, solo_enc->ch, 1143 + err = solo_set_motion_block(solo_dev, solo_enc->ch, 1144 1144 solo_enc->md_thresholds->p_cur.p_u16); 1145 + if (err) 1146 + return err; 1145 1147 } 1146 1148 solo_motion_toggle(solo_enc, ctrl->val); 1147 1149 return 0; ··· 1154 1152 break; 1155 1153 case V4L2_CID_OSD_TEXT: 1156 1154 strcpy(solo_enc->osd_text, ctrl->p_new.p_char); 1157 - err = solo_osd_print(solo_enc); 1158 - return err; 1155 + return solo_osd_print(solo_enc); 1159 1156 default: 1160 1157 return -EINVAL; 1161 1158 }