No need to do same error check on two places. First return all uncompressed data then on last read check error.