Skip to content

Commit 7b2bae5

Browse files
Pengcheng Chenakiernan
authored andcommitted
osd: null pointer risk protect
PD#151241: null pointer risk protect driver defect clean up: torvalds#284 Change-Id: I05ffb3df451b0f62de0ef00a688edc6bc33b1964 Signed-off-by: Pengcheng Chen <[email protected]>
1 parent 83618b8 commit 7b2bae5

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

drivers/amlogic/media/osd/osd_fb.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1277,7 +1277,7 @@ static int osd_mmap(struct fb_info *info, struct vm_area_struct *vma)
12771277
fbdev->fb_mem_vaddr = fb_rmem_vaddr[fb_index];
12781278
if (!fbdev->fb_mem_vaddr) {
12791279
osd_log_err("failed to ioremap frame buffer\n");
1280-
ret = -ENOMEM;
1280+
return -ENOMEM;
12811281
}
12821282
osd_log_info("Frame buffer memory assigned at");
12831283
osd_log_info(" %d, phy: 0x%p, vir:0x%p, size=%dK\n\n",
@@ -1318,7 +1318,8 @@ static int osd_mmap(struct fb_info *info, struct vm_area_struct *vma)
13181318
osd_log_info("---------------clear fb%d memory %p\n",
13191319
fb_index, fbdev->fb_mem_vaddr);
13201320
set_logo_loaded();
1321-
memset(fbdev->fb_mem_vaddr, 0x0, fbdev->fb_len);
1321+
if (fbdev->fb_mem_vaddr)
1322+
memset(fbdev->fb_mem_vaddr, 0x0, fbdev->fb_len);
13221323
if (fb_index == DEV_OSD0 && osd_get_afbc()) {
13231324
for (j = 1; j < OSD_MAX_BUF_NUM; j++) {
13241325
osd_log_info(
@@ -1334,10 +1335,10 @@ static int osd_mmap(struct fb_info *info, struct vm_area_struct *vma)
13341335
* 1. the big buffer ion alloc
13351336
* 2. reserved memory
13361337
*/
1337-
1338-
memset(fb_rmem_vaddr[fb_index],
1339-
0x0,
1340-
fb_rmem_size[fb_index]);
1338+
if (fb_rmem_vaddr[fb_index])
1339+
memset(fb_rmem_vaddr[fb_index],
1340+
0x0,
1341+
fb_rmem_size[fb_index]);
13411342
}
13421343
/* setup osd if not logo layer */
13431344
osddev_setup(fbdev);

0 commit comments

Comments
 (0)