Read: drain the data before processing `Eof

This avoids truncating the datastream.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>