X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5c19dc3ae3bd8e40a9c028b0deddd50ff337692c..07691282a056c4efea71e1e505527601e8cc166b:/OSX/libsecurity_codesigning/antlr2/src/CharBuffer.cpp diff --git a/OSX/libsecurity_codesigning/antlr2/src/CharBuffer.cpp b/OSX/libsecurity_codesigning/antlr2/src/CharBuffer.cpp index c40495e3..b58bd354 100644 --- a/OSX/libsecurity_codesigning/antlr2/src/CharBuffer.cpp +++ b/OSX/libsecurity_codesigning/antlr2/src/CharBuffer.cpp @@ -40,7 +40,15 @@ CharBuffer::CharBuffer(ANTLR_USE_NAMESPACE(std)istream& input_) 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(static_cast(i)); // } // catch (ANTLR_USE_NAMESPACE(std)ios_base::failure& e) { // throw CharStreamIOException(e);