summaryrefslogtreecommitdiff
path: root/lib/string_decoder.js
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2012-10-04 17:43:15 -0700
committerisaacs <i@izs.me>2012-12-13 17:00:22 -0800
commit314c6b306038526209d284cf9fdbe978d2a634ec (patch)
tree249f918d848ad9bebebec5db4d0dcd08b8890b9a /lib/string_decoder.js
parent77ed12fe7a16d3d97d637512db109f4273711bec (diff)
downloadandroid-node-v8-314c6b306038526209d284cf9fdbe978d2a634ec.tar.gz
android-node-v8-314c6b306038526209d284cf9fdbe978d2a634ec.tar.bz2
android-node-v8-314c6b306038526209d284cf9fdbe978d2a634ec.zip
Don't allow invalid encodings in StringDecoder class
Diffstat (limited to 'lib/string_decoder.js')
-rw-r--r--lib/string_decoder.js7
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