Two RFB protocol bugs in the /screen client: 1. ServerInit parsed framebuffer-height from byte offset 1 instead of 2. RFB 3.8 ServerInit is width@0-1, height@2-3; u16be(b,1) mixes the low byte of width with the high byte of height. The wrong height went into the initial non-incremental FramebufferUpdate- Request; neatvnc feeds the client's width/height straight into pixman_region_union_rect un-clipped (src/server.c), so an out-of-range height corrupts the server damage region and pixman reports 'Invalid rectangle passed'. 2. FramebufferUpdate handler had a stray drainTo(1) after the 3-byte padding+nRects header, consuming the first byte of the first rectangle and desyncing every update. Closes #128 |
||
|---|---|---|
| .. | ||
| agent.css | ||
| app.js | ||
| index.html | ||
| screen.html | ||
| stats.html | ||
| stats.js | ||