vnc: Fix tight_detect_smooth_image() for lossless case
VncTight member uint8_t quality is either (uint8_t)-1 for lossless or less than 10 for lossy. tight_detect_smooth_image() first promotes it to int, then compares with -1. Always unequal, so we always execute the lossy code. Reads beyond tight_conf[] and returns crap when quality is actually lossless. Compare to (uint8_t)-1 instead, like we do elsewhere. Spotted by Coverity. Signed-off-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
f53f3d0a00
commit
2e7bcdb99a
@ -330,7 +330,7 @@ tight_detect_smooth_image(VncState *vs, int w, int h)
|
||||
} else {
|
||||
errors = tight_detect_smooth_image16(vs, w, h);
|
||||
}
|
||||
if (quality != -1) {
|
||||
if (quality != (uint8_t)-1) {
|
||||
return (errors < tight_conf[quality].jpeg_threshold);
|
||||
}
|
||||
return (errors < tight_conf[compression].gradient_threshold);
|
||||
|
Loading…
Reference in New Issue
Block a user