It looks like a succesful read would have worked, assuming that the other side always sends a \n last, as strtoul would find one before the NUL. However, an error would write before the buffer.
Now qrexec-daemon requires three arguments: domid, domname, default_user.