};
struct _virCommand {
- int has_error; /* ENOMEM on allocation failure, -1 for anything else. */
+ int has_error; /* 0 on success, -1 on error */
char **args;
size_t nargs;
*
* Returns: 0 on success,
* -1 on usage error,
- * ENOMEM on OOM
*/
static int
virCommandFDSet(virCommandPtr cmd,
if (virCommandFDIsSet(cmd, fd))
return 0;
- if (VIR_EXPAND_N(cmd->passfd, cmd->npassfd, 1) < 0)
- return ENOMEM;
+ ignore_value(VIR_EXPAND_N(cmd->passfd, cmd->npassfd, 1));
cmd->passfd[cmd->npassfd - 1].fd = fd;
cmd->passfd[cmd->npassfd - 1].flags = flags;
}
/* Arg plus trailing NULL. */
- if (VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 1 + 1) < 0) {
- cmd->has_error = ENOMEM;
- return;
- }
+ ignore_value(VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 1 + 1));
cmd->env[cmd->nenv++] = g_steal_pointer(&env);
}
if (!cmd || cmd->has_error)
return;
- if (VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 9) < 0) {
- cmd->has_error = ENOMEM;
- return;
- }
+ ignore_value(VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 9));
virCommandAddEnvPair(cmd, "LC_ALL", "C");
if (!cmd || cmd->has_error)
return;
- if (VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 3) < 0) {
- cmd->has_error = ENOMEM;
- return;
- }
+ ignore_value(VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 3));
virCommandAddEnvFormat(cmd, "XDG_DATA_HOME=%s/%s",
baseDir, ".local/share");
}
/* Arg plus trailing NULL. */
- if (VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, 1 + 1) < 0) {
- cmd->has_error = ENOMEM;
- return;
- }
+ ignore_value(VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, 1 + 1));
cmd->args[cmd->nargs++] = g_strdup(val);
}
str = g_strdup("");
/* Arg plus trailing NULL. */
- if (VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, 1 + 1) < 0) {
- cmd->has_error = ENOMEM;
- return;
- }
+ ignore_value(VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, 1 + 1));
cmd->args[cmd->nargs] = g_steal_pointer(&str);
cmd->nargs++;
va_end(list);
/* Arg plus trailing NULL. */
- if (VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, 1 + 1) < 0) {
- VIR_FREE(arg);
- cmd->has_error = ENOMEM;
- return;
- }
+ ignore_value(VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, 1 + 1));
cmd->args[cmd->nargs++] = arg;
}
narg++;
/* narg plus trailing NULL. */
- if (VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, narg + 1) < 0) {
- cmd->has_error = ENOMEM;
- return;
- }
+ ignore_value(VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, narg + 1));
narg = 0;
while (vals[narg] != NULL) {
va_end(list);
/* narg plus trailing NULL. */
- if (VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, narg + 1) < 0) {
- cmd->has_error = ENOMEM;
- return;
- }
+ ignore_value(VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, narg + 1));
va_start(list, cmd);
while (1) {
}
i = virCommandGetNumSendBuffers(cmd);
- if (VIR_REALLOC_N(cmd->sendBuffers, i + 1) < 0) {
- cmd->has_error = ENOMEM;
- return -1;
- }
+ ignore_value(VIR_REALLOC_N(cmd->sendBuffers, i + 1));
cmd->sendBuffers[i].fd = fd;
cmd->sendBuffers[i].buffer = buffer;
/* Cannot assume virCommandRun will be called; so report the error
* now. If virCommandRun is called, it will report the same error. */
- if (!cmd ||cmd->has_error == ENOMEM) {
- virReportOOMError();
- return NULL;
- }
- if (cmd->has_error) {
+ if (!cmd || cmd->has_error) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("invalid use of command API"));
return NULL;
*/
int virCommandExec(virCommandPtr cmd, gid_t *groups, int ngroups)
{
- if (!cmd ||cmd->has_error == ENOMEM) {
- virReportOOMError();
- return -1;
- }
- if (cmd->has_error) {
+ if (!cmd || cmd->has_error) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("invalid use of command API"));
return -1;
char *str;
int tmpfd;
- if (!cmd ||cmd->has_error == ENOMEM) {
- virReportOOMError();
- return -1;
- }
- if (cmd->has_error) {
+ if (!cmd || cmd->has_error) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("invalid use of command API"));
return -1;
bool synchronous = false;
int infd[2] = {-1, -1};
- if (!cmd || cmd->has_error == ENOMEM) {
- virReportOOMError();
- return -1;
- }
- if (cmd->has_error) {
+ if (!cmd || cmd->has_error) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("invalid use of command API"));
return -1;
int ret;
int status = 0;
- if (!cmd ||cmd->has_error == ENOMEM) {
- virReportOOMError();
- return -1;
- }
- if (cmd->has_error) {
+ if (!cmd || cmd->has_error) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("invalid use of command API"));
return -1;
{
char c;
int rv;
- if (!cmd ||cmd->has_error == ENOMEM) {
- virReportOOMError();
- return -1;
- }
- if (cmd->has_error || !cmd->handshake) {
+
+ if (!cmd || cmd->has_error || !cmd->handshake) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("invalid use of command API"));
return -1;
int virCommandHandshakeNotify(virCommandPtr cmd)
{
char c = '1';
- if (!cmd ||cmd->has_error == ENOMEM) {
- virReportOOMError();
- return -1;
- }
- if (cmd->has_error || !cmd->handshake) {
+
+ if (!cmd || cmd->has_error || !cmd->handshake) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("invalid use of command API"));
return -1;