buf -> *buf