write: allow 0 byte writes