Mercurial > dovecot > core-2.2
view src/lib/execv-const.c @ 22596:1a7bbda6284b
iostream-multiplex: Check return values in tests
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Fri, 06 Oct 2017 08:52:18 +0300 |
parents | 2e2563132d5f |
children | cb108f786fb4 |
line wrap: on
line source
/* Copyright (c) 2010-2017 Dovecot authors, see the included COPYING file */ #include "lib.h" #include "execv-const.h" #include <unistd.h> static char **argv_drop_const(const char *const argv[]) { char **ret; unsigned int i, count; for (count = 0; argv[count] != NULL; count++) ; ret = t_new(char *, count + 1); for (i = 0; i < count; i++) ret[i] = t_strdup_noconst(argv[i]); return ret; } void execv_const(const char *path, const char *const argv[]) { (void)execv(path, argv_drop_const(argv)); i_fatal_status(errno == ENOMEM ? FATAL_OUTOFMEM : FATAL_EXEC, "execv(%s) failed: %m", path); } void execvp_const(const char *file, const char *const argv[]) { (void)execvp(file, argv_drop_const(argv)); i_fatal_status(errno == ENOMEM ? FATAL_OUTOFMEM : FATAL_EXEC, "execvp(%s) failed: %m", file); }