fix: uninitialized pointer read
Signed-off-by: jianglianfang <jianglianfang@xiaomi.com>
This commit is contained in:
parent
72e186f64a
commit
009fc1a28a
@ -155,16 +155,17 @@ static void pan_display(FAR struct fb_state_s *state)
|
|||||||
* fb_init_mem2
|
* fb_init_mem2
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int fb_init_mem2(FAR struct fb_state_s *state,
|
static int fb_init_mem2(FAR struct fb_state_s *state)
|
||||||
FAR struct fb_planeinfo_s *pinfo)
|
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
uintptr_t buf_offset;
|
uintptr_t buf_offset;
|
||||||
|
struct fb_planeinfo_s pinfo;
|
||||||
|
|
||||||
pinfo->display = state->pinfo.display + 1;
|
memset(&pinfo, 0, sizeof(pinfo));
|
||||||
|
pinfo.display = state->pinfo.display + 1;
|
||||||
|
|
||||||
ret = ioctl(state->fd, FBIOGET_PLANEINFO,
|
ret = ioctl(state->fd, FBIOGET_PLANEINFO,
|
||||||
(unsigned long)(uintptr_t)pinfo);
|
&pinfo);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
int errcode = errno;
|
int errcode = errno;
|
||||||
@ -175,7 +176,7 @@ static int fb_init_mem2(FAR struct fb_state_s *state,
|
|||||||
|
|
||||||
/* Check bpp */
|
/* Check bpp */
|
||||||
|
|
||||||
if (pinfo->bpp != state->pinfo.bpp)
|
if (pinfo.bpp != state->pinfo.bpp)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "ERROR: fbmem2 is incorrect");
|
fprintf(stderr, "ERROR: fbmem2 is incorrect");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -185,7 +186,7 @@ static int fb_init_mem2(FAR struct fb_state_s *state,
|
|||||||
* It needs to be divisible by pinfo.stride
|
* It needs to be divisible by pinfo.stride
|
||||||
*/
|
*/
|
||||||
|
|
||||||
buf_offset = pinfo->fbmem - state->fbmem;
|
buf_offset = pinfo.fbmem - state->fbmem;
|
||||||
|
|
||||||
if ((buf_offset % state->pinfo.stride) != 0)
|
if ((buf_offset % state->pinfo.stride) != 0)
|
||||||
{
|
{
|
||||||
@ -202,14 +203,14 @@ static int fb_init_mem2(FAR struct fb_state_s *state,
|
|||||||
/* Use consecutive fbmem2. */
|
/* Use consecutive fbmem2. */
|
||||||
|
|
||||||
state->mem2_yoffset = state->vinfo.yres;
|
state->mem2_yoffset = state->vinfo.yres;
|
||||||
state->fbmem2 = pinfo->fbmem + state->mem2_yoffset * pinfo->stride;
|
state->fbmem2 = pinfo.fbmem + state->mem2_yoffset * pinfo.stride;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Use non-consecutive fbmem2. */
|
/* Use non-consecutive fbmem2. */
|
||||||
|
|
||||||
state->mem2_yoffset = buf_offset / state->pinfo.stride;
|
state->mem2_yoffset = buf_offset / state->pinfo.stride;
|
||||||
state->fbmem2 = pinfo->fbmem;
|
state->fbmem2 = pinfo.fbmem;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -422,7 +423,6 @@ static void draw_rect(FAR struct fb_state_s *state,
|
|||||||
int main(int argc, FAR char *argv[])
|
int main(int argc, FAR char *argv[])
|
||||||
{
|
{
|
||||||
FAR const char *fbdev = g_default_fbdev;
|
FAR const char *fbdev = g_default_fbdev;
|
||||||
struct fb_planeinfo_s pinfo;
|
|
||||||
struct fb_state_s state;
|
struct fb_state_s state;
|
||||||
struct fb_area_s area;
|
struct fb_area_s area;
|
||||||
int nsteps;
|
int nsteps;
|
||||||
@ -582,7 +582,7 @@ int main(int argc, FAR char *argv[])
|
|||||||
|
|
||||||
if (state.pinfo.yres_virtual == (state.vinfo.yres * 2))
|
if (state.pinfo.yres_virtual == (state.vinfo.yres * 2))
|
||||||
{
|
{
|
||||||
if ((ret = fb_init_mem2(&state, &pinfo)) < 0)
|
if ((ret = fb_init_mem2(&state)) < 0)
|
||||||
{
|
{
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user