From 8c823944c295f5e2bebc3d6b627b2f8c77ad7273 Mon Sep 17 00:00:00 2001 From: Shaoen-Lin Date: Sat, 27 Jun 2026 10:19:35 +0800 Subject: [PATCH] Fix framebuffer pseudo palette setup vcam_fb_setcolreg() writes TRUECOLOR entries through info->pseudo_palette, but vcamfb_init() initializes that pointer to NULL. A colormap update can therefore dereference a NULL pseudo_palette. Add a 16-entry pseudo palette to the framebuffer private data and point info->pseudo_palette to it during initialization. Signed-off-by: Shaoen-Lin --- fb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fb.c b/fb.c index 64ba54a..480c575 100644 --- a/fb.c +++ b/fb.c @@ -12,6 +12,7 @@ struct vcamfb_info { struct fb_info *info; void *addr; unsigned int offset; + u32 pseudo_palette[16]; char name[FB_NAME_MAXLENGTH]; }; @@ -405,7 +406,8 @@ int vcamfb_init(struct vcam_device *dev) info->var = vfb_default; info->fbops = &vcamfb_ops; info->par = dev; - info->pseudo_palette = NULL; + memset(fb_data->pseudo_palette, 0, sizeof(fb_data->pseudo_palette)); + info->pseudo_palette = fb_data->pseudo_palette; INIT_LIST_HEAD(&info->modelist); /* set the fb_cmap */