On 9/3/20 8:22 AM, Daniel P. Berrangé wrote: > qemu_open_old() works like open(): set errno and return -1 on failure. > It has even more failure modes, though. Reporting the error clearly > to users is basically impossible for many of them. > > Our standard cure for "errno is too coarse" is the Error object. > Introduce two new helper methods: > > int qemu_open(const char *name, int flags, Error **errp); > int qemu_create(const char *name, int flags, mode_t mode, Error **errp); > > Note that with this design we no longer require or even accept the > O_CREAT flag. Avoiding overloading the two distinct operations > means we can avoid variable arguments which would prevent 'errp' from > being the last argument. It also gives us a guarantee that the 'mode' is > given when creating files, avoiding a latent security bug. > > Reviewed-by: Markus Armbruster <arm...@redhat.com> > Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> > ---
Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~