fine granularity check of Pipe::read_message()