VNC: Fix a memory clobblering bug

This commit is contained in:
Gregory Nutt
2016-04-23 10:21:49 -06:00
parent e723fc7fd4
commit f3499b173a
2 changed files with 11 additions and 19 deletions
+9 -17
View File
@@ -2364,28 +2364,20 @@ Configuration sub-directories
2016-04-21: I have gotten the apps/examples/nximage to work with 2016-04-21: I have gotten the apps/examples/nximage to work with
lots issues with 16-bit RGB and verbose GRAPHICS and UPDATER debug lots issues with 16-bit RGB and verbose GRAPHICS and UPDATER debug
ON. There are reliability problems and it hangs at the end of the ON. There are reliability problems and it hangs at the end of the
test. But if I turn UPDATE debug off (only), then the display test.
output is corrupted. I have also see hardfaults.
Mostly likely, the UPDATER debug output slows the updates and 2016-04-22: The default configuration now uses RGB8 which needs a lot
avoids some kind of race condition with the networking. Oddly, less SRAM for the local frame buffer and does not degrade the color
it does not work at all if I turn off TCP write buffering.
2016-04-22: I added a 100 MS delay at the beginning of the
updater loop and it made no difference. This seems to eliminate
the suspected networking race condition. I am thinking now
either some data overrun or VNC protocol/timing issue?
The default configuration now uses RGB8 which needs a lot less
SRAM for the local frame buffer and does not degrade the color
quality in the remote display (since it is also 8 BPP). At 8 quality in the remote display (since it is also 8 BPP). At 8
BPP, the remote display is correct even with both GRAPHICS and BPP, the remote display is correct even with both GRAPHICS and
UPDATER debug OFF -- and there is no hang! UPDATER debug OFF -- and there is no hang!
2106-04-23: The NxImage example at apps/examplex/nximage. This was 2106-04-23: The NxImage test was selected because it is a very simple
selected because it is a very simple graphics test. Continued graphics test. Continued testing, however, requires a more complex
testing, however, requires a more complex configuration. Hence, configuration. Hence, the vnxwm configuration was created.
the vnxwm configuration was created.
A memory clobber error was fixed and this probably corrects some of
the reliability problems noted on 2016-04-21.
vnxwm: vnxwm:
+2 -2
View File
@@ -370,8 +370,8 @@ struct rfb_setpixelformat_s
struct rfb_setencodings_s struct rfb_setencodings_s
{ {
uint8_t msgtype; /* U8 Message type */ uint8_t msgtype; /* U8 Message type */
uint8_t padding[3]; uint8_t padding;
uint8_t nencodings[4]; /* U32 Number of encodings */ uint8_t nencodings[2]; /* U32 Number of encodings */
uint8_t encodings[4]; /* S32 Encoding type, size = 4*nencodings */ uint8_t encodings[4]; /* S32 Encoding type, size = 4*nencodings */
}; };