read buf