tree: git://linuxtv.org/media_tree.git request_api
head: 50e761516f2b8c0cdeb31a8c6ca1b4ef98cd13f1
commit: 50e761516f2b8c0cdeb31a8c6ca1b4ef98cd13f1 [77/77] media: platform: Add
Cedrus VPU decoder driver
smatch warnings:
drivers/staging/media/sunxi/cedrus/cedrus.c:93 cedrus_init_ctrls() error:
potential null dereference 'ctx->ctrls'. (kzalloc returns null)
vim +93 drivers/staging/media/sunxi/cedrus/cedrus.c
57
58 static int cedrus_init_ctrls(struct cedrus_dev *dev, struct cedrus_ctx
*ctx)
59 {
60 struct v4l2_ctrl_handler *hdl = &ctx->hdl;
61 struct v4l2_ctrl *ctrl;
62 unsigned int ctrl_size;
63 unsigned int i;
64
65 v4l2_ctrl_handler_init(hdl, CEDRUS_CONTROLS_COUNT);
66 if (hdl->error) {
67 v4l2_err(&dev->v4l2_dev,
68 "Failed to initialize control handler\n");
69 return hdl->error;
70 }
71
72 ctrl_size = sizeof(ctrl) * CEDRUS_CONTROLS_COUNT + 1;
73
74 ctx->ctrls = kzalloc(ctrl_size, GFP_KERNEL);
75 memset(ctx->ctrls, 0, ctrl_size);
76
77 for (i = 0; i < CEDRUS_CONTROLS_COUNT; i++) {
78 struct v4l2_ctrl_config cfg = { 0 };
79
80 cfg.elem_size = cedrus_controls[i].elem_size;
81 cfg.id = cedrus_controls[i].id;
82
83 ctrl = v4l2_ctrl_new_custom(hdl, &cfg, NULL);
84 if (hdl->error) {
85 v4l2_err(&dev->v4l2_dev,
86 "Failed to create new custom
control\n");
87
88 v4l2_ctrl_handler_free(hdl);
89 kfree(ctx->ctrls);
90 return hdl->error;
91 }
92
> 93 ctx->ctrls[i] = ctrl;
94 }
95
96 ctx->fh.ctrl_handler = hdl;
97 v4l2_ctrl_handler_setup(hdl);
98
99 return 0;
100 }
101
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation