Fix buffer overflow on interupted read

The tio_read() function will read past its buffer and return garbadge to
the calling function if the call to read() was interrupted by a signal.

The likelyhood of read() being interupted is low because previously a
call to poll() has determined that data is available to be read.

Thanks to John Sullivan for pointing this out.

See:
https://bugzilla.redhat.com/show_bug.cgi?id=1003011