diff options
author | isaacs <i@izs.me> | 2012-10-04 17:43:15 -0700 |
---|---|---|
committer | isaacs <i@izs.me> | 2012-12-13 17:00:22 -0800 |
commit | 314c6b306038526209d284cf9fdbe978d2a634ec (patch) | |
tree | 249f918d848ad9bebebec5db4d0dcd08b8890b9a | |
parent | 77ed12fe7a16d3d97d637512db109f4273711bec (diff) | |
download | android-node-v8-314c6b306038526209d284cf9fdbe978d2a634ec.tar.gz android-node-v8-314c6b306038526209d284cf9fdbe978d2a634ec.tar.bz2 android-node-v8-314c6b306038526209d284cf9fdbe978d2a634ec.zip |
Don't allow invalid encodings in StringDecoder class
-rw-r--r-- | lib/string_decoder.js | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/string_decoder.js b/lib/string_decoder.js index 31d4b24702..6b1e30895a 100644 --- a/lib/string_decoder.js +++ b/lib/string_decoder.js @@ -19,8 +19,15 @@ // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // USE OR OTHER DEALINGS IN THE SOFTWARE. +function assertEncoding(encoding) { + if (encoding && !Buffer.isEncoding(encoding)) { + throw new Error('Unknown encoding: ' + encoding); + } +} + var StringDecoder = exports.StringDecoder = function(encoding) { this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); + assertEncoding(encoding); switch (this.encoding) { case 'utf8': // CESU-8 represents each of Surrogate Pair by 3-bytes |