This simple refactoring prepares for future patches. The variadic args handling is split from the main bulk of the open logic.
Reviewed-by: Markus Armbruster <arm...@redhat.com> Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> --- util/osdep.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/util/osdep.c b/util/osdep.c index 7504c156e8..11531e8f59 100644 --- a/util/osdep.c +++ b/util/osdep.c @@ -296,10 +296,10 @@ static int qemu_open_cloexec(const char *name, int flags, mode_t mode) /* * Opens a file with FD_CLOEXEC set */ -int qemu_open_old(const char *name, int flags, ...) +static int +qemu_open_internal(const char *name, int flags, mode_t mode) { int ret; - int mode = 0; #ifndef _WIN32 const char *fdset_id_str; @@ -324,15 +324,25 @@ int qemu_open_old(const char *name, int flags, ...) } #endif - if (flags & O_CREAT) { - va_list ap; + ret = qemu_open_cloexec(name, flags, mode); + + return ret; +} + - va_start(ap, flags); +int qemu_open_old(const char *name, int flags, ...) +{ + va_list ap; + mode_t mode = 0; + int ret; + + va_start(ap, flags); + if (flags & O_CREAT) { mode = va_arg(ap, int); - va_end(ap); } + va_end(ap); - ret = qemu_open_cloexec(name, flags, mode); + ret = qemu_open_internal(name, flags, mode); #ifdef O_DIRECT if (ret == -1 && errno == EINVAL && (flags & O_DIRECT)) { -- 2.26.2