SoftwareSerial.read() returning value with all the bits set

Thanks. Here I am thinking there's something weird going on and actually the code is doing exactly what it says it should do. It's casting the read byte into a signed one-byte quantity, and then into a signed int. So any byte with the high bit set is going to get cast into a signed int with
all the high bits set.
Changing the definition in SoftwareSerial.h of ringbuf from:
::RingBuffer<uint8_t> ringbuf;
to
` ::RingBuffer<uint8_t> ringbuf;

makes it work.

It's kind of a dumb bug.