.. | .. |
---|
287 | 287 | |
---|
288 | 288 | ret = pisp_dmy_ioctl(sd, cmd, inf); |
---|
289 | 289 | if (!ret) |
---|
290 | | - ret = copy_to_user(up, inf, sizeof(*inf)); |
---|
| 290 | + if (copy_to_user(up, inf, sizeof(*inf))) { |
---|
| 291 | + kfree(inf); |
---|
| 292 | + return -EFAULT; |
---|
| 293 | + } |
---|
291 | 294 | kfree(inf); |
---|
292 | 295 | break; |
---|
293 | 296 | case RKMODULE_AWB_CFG: |
---|
.. | .. |
---|
297 | 300 | return ret; |
---|
298 | 301 | } |
---|
299 | 302 | |
---|
300 | | - ret = copy_from_user(cfg, up, sizeof(*cfg)); |
---|
301 | | - if (!ret) |
---|
302 | | - ret = pisp_dmy_ioctl(sd, cmd, cfg); |
---|
| 303 | + if (copy_from_user(cfg, up, sizeof(*cfg))) { |
---|
| 304 | + kfree(cfg); |
---|
| 305 | + return -EFAULT; |
---|
| 306 | + } |
---|
| 307 | + |
---|
| 308 | + ret = pisp_dmy_ioctl(sd, cmd, cfg); |
---|
303 | 309 | kfree(cfg); |
---|
304 | 310 | break; |
---|
305 | 311 | default: |
---|