]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_codesigning/antlr2/src/CharBuffer.cpp
Security-58286.270.3.0.1.tar.gz
[apple/security.git] / OSX / libsecurity_codesigning / antlr2 / src / CharBuffer.cpp
index c40495e310d3cc062866e2ec05a4250dbca131f0..b58bd35456d2755865e0d2afd40838781609be4a 100644 (file)
@@ -40,7 +40,15 @@ CharBuffer::CharBuffer(ANTLR_USE_NAMESPACE(std)istream& input_)
 int CharBuffer::getChar()
 {
 //     try {
 int CharBuffer::getChar()
 {
 //     try {
-               return input.get();
+    int i = input.get();
+    
+    if (i == -1) {
+        // pass through EOF
+        return -1;
+    }
+    
+    // prevent negative-valued characters through sign extension of high-bit characters
+    return static_cast<int>(static_cast<unsigned char>(i));
 //     }
 //     catch (ANTLR_USE_NAMESPACE(std)ios_base::failure& e) {
 //             throw CharStreamIOException(e);
 //     }
 //     catch (ANTLR_USE_NAMESPACE(std)ios_base::failure& e) {
 //             throw CharStreamIOException(e);