[Bugfix] Extend encoding range checks to handle negative encodings well.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4113 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/ConnParams.cxx b/common/rfb/ConnParams.cxx
index 9bfc302..3ee3708 100644
--- a/common/rfb/ConnParams.cxx
+++ b/common/rfb/ConnParams.cxx
@@ -129,7 +129,7 @@
encodings[i] <= pseudoEncodingQualityLevel9) {
noJpeg = false;
qualityLevel = encodings[i] - pseudoEncodingQualityLevel0;
- } else if (encodings[i] <= encodingMax && Encoder::supported(encodings[i]))
+ } else if (Encoder::supported(encodings[i]))
currentEncoding_ = encodings[i];
}
}
diff --git a/common/rfb/Encoder.cxx b/common/rfb/Encoder.cxx
index b0bd147..5de7543 100644
--- a/common/rfb/Encoder.cxx
+++ b/common/rfb/Encoder.cxx
@@ -34,12 +34,12 @@
bool Encoder::supported(int encoding)
{
- return encoding <= encodingMax && createFns[encoding];
+ return encoding >= 0 && encoding <= encodingMax && createFns[encoding];
}
Encoder* Encoder::createEncoder(int encoding, SMsgWriter* writer)
{
- if (encoding <= encodingMax && createFns[encoding])
+ if (supported(encoding))
return (*createFns[encoding])(writer);
return 0;
}