From: Karthik Bhat Date: Fri, 31 Aug 2018 08:58:21 +0000 (+0530) Subject: Fix SVACE Issues X-Git-Tag: submit/tizen_studio_4.5_p6.5/20220111.085032~35 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=256e19ab299187be25e0ead9f609fd84e5e2f3c7;p=sdk%2Femulator%2Femulator-kernel.git Fix SVACE Issues Change-Id: I5acfbfef1a97a7785523b848fd7a5c3678a3261f Signed-off-by: Karthik Bhat --- diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 6f65f06c37a0..64da7747f4e3 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -819,12 +819,12 @@ static void drm_connector_get_cmdline_mode(struct drm_connector *connector) char *option = NULL; if (fb_get_options(connector->name, &option)) - return; + goto out_err; if (!drm_mode_parse_command_line_for_connector(option, connector, mode)) - return; + goto out_err; if (mode->force) { const char *s; @@ -853,6 +853,9 @@ static void drm_connector_get_cmdline_mode(struct drm_connector *connector) mode->rb ? " reduced blanking" : "", mode->margins ? " with margins" : "", mode->interlace ? " interlaced" : ""); + out_err: + if(option != NULL) + kfree(option); } /** diff --git a/drivers/gpu/drm/vigs/vigs_fbdev.c b/drivers/gpu/drm/vigs/vigs_fbdev.c index 2f7803f7aeb9..69ec82f90986 100644 --- a/drivers/gpu/drm/vigs/vigs_fbdev.c +++ b/drivers/gpu/drm/vigs/vigs_fbdev.c @@ -403,7 +403,7 @@ static int vigs_fbdev_probe_once(struct drm_fb_helper *helper, goto fail4; } - strcpy(fbi->fix.id, "VIGS"); + strncpy(fbi->fix.id, "VIGS", sizeof(fbi->fix.id)); drm_fb_helper_fill_fix(fbi, vigs_fb->base.pitches[0], vigs_fb->base.depth); drm_fb_helper_fill_var(fbi, helper, vigs_fb->base.width, vigs_fb->base.height); @@ -434,7 +434,7 @@ static int vigs_fbdev_probe_once(struct drm_fb_helper *helper, * TODO: Play around with xoffset/yoffset, make sure this code works. */ - offset = fbi->var.xoffset * (vigs_fb->base.bits_per_pixel >> 3); + offset = (unsigned long)(fbi->var.xoffset) * (vigs_fb->base.bits_per_pixel >> 3); offset += fbi->var.yoffset * vigs_fb->base.pitches[0]; /* diff --git a/drivers/gpu/drm/vigs/vigs_mman.c b/drivers/gpu/drm/vigs/vigs_mman.c index 9440d44c40fb..38316c7b7c8b 100644 --- a/drivers/gpu/drm/vigs/vigs_mman.c +++ b/drivers/gpu/drm/vigs/vigs_mman.c @@ -440,7 +440,7 @@ int vigs_mman_create(resource_size_t vram_base, goto fail1; } - sprintf(vma_cache_name, "vigs_vma_cache%u", vigs_vma_cache_index++); + snprintf(vma_cache_name, 100, "vigs_vma_cache%u", vigs_vma_cache_index++); (*mman)->vma_cache = kmem_cache_create(vma_cache_name, sizeof(struct vigs_mman_vma) + diff --git a/drivers/gpu/drm/vigs/vigs_output.c b/drivers/gpu/drm/vigs/vigs_output.c index b192208a1cfd..47603cbbdd8c 100644 --- a/drivers/gpu/drm/vigs/vigs_output.c +++ b/drivers/gpu/drm/vigs/vigs_output.c @@ -112,6 +112,8 @@ static int vigs_connector_get_modes(struct drm_connector *connector) preferred_mode->type = DRM_MODE_TYPE_PREFERRED | DRM_MODE_TYPE_DRIVER; drm_mode_set_crtcinfo(preferred_mode, CRTC_INTERLACE_HALVE_V); drm_mode_probed_add(connector, preferred_mode); + if (option != NULL) + kfree(option); return 1; } } diff --git a/drivers/video/fbdev/core/fb_cmdline.c b/drivers/video/fbdev/core/fb_cmdline.c index 39509ccd92f1..32ad2f343fa6 100644 --- a/drivers/video/fbdev/core/fb_cmdline.c +++ b/drivers/video/fbdev/core/fb_cmdline.c @@ -52,6 +52,7 @@ int fb_get_options(const char *name, char **option) opt[name_len] == ':') options = opt + name_len + 1; } + options = kstrdup(options, GFP_KERNEL); } /* No match, pass global option */ if (!options && option && fb_mode_option)