提交 c05df8b3 编写于 作者: X Xiaochen Wang 提交者: Mauro Carvalho Chehab

[media] pvrusb2: check kmalloc return value

 allows the driver to proceed and initialize the below two values
 even if the kmalloc() fails.
        hdw->std_info_enum.def.type_enum.value_names
        hdw->std_info_enum.def.type_enum.count
Signed-off-by: NXiaochen Wang <wangxiaochen0@gmail.com>
Signed-off-by: NMike Isely <isely@pobox.com>
Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 228ee592
......@@ -2850,15 +2850,23 @@ static void pvr2_hdw_internal_set_std_avail(struct pvr2_hdw *hdw)
PVR2_TRACE_ERROR_LEGS,
"WARNING: Failed to identify any viable standards");
}
/* Set up the dynamic control for this standard */
hdw->std_enum_names = kmalloc(sizeof(char *)*(std_cnt+1),GFP_KERNEL);
hdw->std_enum_names[0] = "none";
for (idx = 0; idx < std_cnt; idx++) {
hdw->std_enum_names[idx+1] =
newstd[idx].name;
}
// Set up the dynamic control for this standard
hdw->std_info_enum.def.type_enum.value_names = hdw->std_enum_names;
hdw->std_info_enum.def.type_enum.count = std_cnt+1;
if (hdw->std_enum_names) {
hdw->std_enum_names[0] = "none";
for (idx = 0; idx < std_cnt; idx++)
hdw->std_enum_names[idx+1] = newstd[idx].name;
hdw->std_info_enum.def.type_enum.value_names =
hdw->std_enum_names;
hdw->std_info_enum.def.type_enum.count = std_cnt+1;
} else {
pvr2_trace(
PVR2_TRACE_ERROR_LEGS,
"WARNING: Failed to alloc memory for names");
hdw->std_info_enum.def.type_enum.value_names = NULL;
hdw->std_info_enum.def.type_enum.count = 0;
}
hdw->std_defs = newstd;
hdw->std_enum_cnt = std_cnt+1;
hdw->std_enum_cur = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册