From 4ee8e4abfb4fb9e46ea6ce2e3685312a684c67d5 Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 19 Apr 2011 01:21:55 +0000 Subject: Minor fix to OLED logic git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3524 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/drivers/lcd/ug-9664hswag01.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nuttx/drivers/lcd/ug-9664hswag01.c b/nuttx/drivers/lcd/ug-9664hswag01.c index b68aef3b8..bb49f20e6 100755 --- a/nuttx/drivers/lcd/ug-9664hswag01.c +++ b/nuttx/drivers/lcd/ug-9664hswag01.c @@ -296,7 +296,7 @@ static inline void up_clear(FAR struct ug_dev_s *priv); * if there are multiple LCD devices, they must each have unique run buffers. */ -static uint8_t g_runbuffer[UG_XSTRIDE]; +static uint8_t g_runbuffer[UG_XSTRIDE+1]; /* This structure describes the overall LCD video controller */ @@ -701,12 +701,16 @@ static int ug_getrun(fb_coord_t row, fb_coord_t col, FAR uint8_t *buffer, *buffer |= usrmask; } - /* Inc/Decrement to the next destination pixel */ + /* Inc/Decrement to the next destination pixel. Hmmmm. It looks like + * this logic could write past the end of the user buffer. Revisit + * this! + */ #ifdef CONFIG_NX_PACKEDMSFIRST if (usrmask == LS_BIT) { buffer++; + *buffer = 0; usrmask = MS_BIT; } else -- cgit v1.2.3