From nobody Mon Feb 9 06:26:32 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1614183557; cv=none; d=zohomail.com; s=zohoarc; b=aigAAuAJq1LFOhBHuPeEVAYOIBml7gPICx7CJL5WJo0VL/ombv7zQBVi5jB3sccKVHIstGvZsg37Rce/HWYeHI5NZz1+h3HPWG/7S/ZE0dNnePI1Ms30vrpeRXA3t2c2y1ieZUKSiI4ND15l4uA71SaPnOXIQcSJfW1+oVZxRAI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614183557; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=GPKj8xOdZPrT9sumfT9WwYlFuiELpFyBZ8SMP5jMCf0=; b=NC1kQot6iLHQPEgFNWexSOdvk0QUof8J9/r58+wgA8lk1OAiKbPxmcDELzshqsHWO49CIe8DHWlZ8sC8fJcgDJPz1m03zQ16+AxHrJGEj3edtl8jldkgBD8PtPp20LREsHFgYDp8FU85361xz7ymX8UtmBW4YiHFHOKm2d/WKS8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1614183557903377.16611465298035; Wed, 24 Feb 2021 08:19:17 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-140-drTkKLXMOkq_DgOUj-F3iA-1; Wed, 24 Feb 2021 11:17:55 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4BCD25074D; Wed, 24 Feb 2021 16:17:45 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2797160C64; Wed, 24 Feb 2021 16:17:45 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id BCC1B58079; Wed, 24 Feb 2021 16:17:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 11OGHZo6015583 for ; Wed, 24 Feb 2021 11:17:35 -0500 Received: by smtp.corp.redhat.com (Postfix) id A957460862; Wed, 24 Feb 2021 16:17:35 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1607460D79 for ; Wed, 24 Feb 2021 16:17:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614183556; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=GPKj8xOdZPrT9sumfT9WwYlFuiELpFyBZ8SMP5jMCf0=; b=Wi4o3kTw+Fb4PFK1j31+uYPY0V2S9bjJaapKkYuvheuvgVmEWCiMER6+Q9YdcDIAw1OFnw yojcBQtvP1eEnCvlUCRQl7zamV2t4JTdy1R1Kq8+UM61MgJwFU2vhLS1ixXy6ZuxgoPqC4 gZAy10TLFbr4yUioc626aVW7hwzoNPY= X-MC-Unique: drTkKLXMOkq_DgOUj-F3iA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 11/33] util: vircommand: Remove OOM handling Date: Wed, 24 Feb 2021 17:16:46 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" The OOM error handling is dead code nowadays. Signed-off-by: Peter Krempa --- src/util/vircommand.c | 96 +++++++++---------------------------------- 1 file changed, 20 insertions(+), 76 deletions(-) diff --git a/src/util/vircommand.c b/src/util/vircommand.c index f11caf0d6e..1a4b77ea24 100644 --- a/src/util/vircommand.c +++ b/src/util/vircommand.c @@ -90,7 +90,7 @@ struct _virCommandSendBuffer { }; 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; @@ -198,7 +198,6 @@ virCommandFDIsSet(virCommandPtr cmd, * * Returns: 0 on success, * -1 on usage error, - * ENOMEM on OOM */ static int virCommandFDSet(virCommandPtr cmd, @@ -211,8 +210,7 @@ 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 =3D fd; cmd->passfd[cmd->npassfd - 1].flags =3D flags; @@ -1344,10 +1342,7 @@ virCommandAddEnv(virCommandPtr cmd, } /* Arg plus trailing NULL. */ - if (VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 1 + 1) < 0) { - cmd->has_error =3D ENOMEM; - return; - } + ignore_value(VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 1 + 1)); cmd->env[cmd->nenv++] =3D g_steal_pointer(&env); } @@ -1474,10 +1469,7 @@ virCommandAddEnvPassCommon(virCommandPtr cmd) if (!cmd || cmd->has_error) return; - if (VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 9) < 0) { - cmd->has_error =3D ENOMEM; - return; - } + ignore_value(VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 9)); virCommandAddEnvPair(cmd, "LC_ALL", "C"); @@ -1497,10 +1489,7 @@ virCommandAddEnvXDG(virCommandPtr cmd, const char *b= aseDir) if (!cmd || cmd->has_error) return; - if (VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 3) < 0) { - cmd->has_error =3D ENOMEM; - return; - } + ignore_value(VIR_RESIZE_N(cmd->env, cmd->maxenv, cmd->nenv, 3)); virCommandAddEnvFormat(cmd, "XDG_DATA_HOME=3D%s/%s", baseDir, ".local/share"); @@ -1530,10 +1519,7 @@ virCommandAddArg(virCommandPtr cmd, const char *val) } /* Arg plus trailing NULL. */ - if (VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, 1 + 1) < 0) { - cmd->has_error =3D ENOMEM; - return; - } + ignore_value(VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, 1 + 1)); cmd->args[cmd->nargs++] =3D g_strdup(val); } @@ -1559,10 +1545,7 @@ virCommandAddArgBuffer(virCommandPtr cmd, virBufferP= tr buf) str =3D g_strdup(""); /* Arg plus trailing NULL. */ - if (VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, 1 + 1) < 0) { - cmd->has_error =3D ENOMEM; - return; - } + ignore_value(VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, 1 + 1)); cmd->args[cmd->nargs] =3D g_steal_pointer(&str); cmd->nargs++; @@ -1591,11 +1574,7 @@ virCommandAddArgFormat(virCommandPtr cmd, const char= *format, ...) 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 =3D ENOMEM; - return; - } + ignore_value(VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, 1 + 1)); cmd->args[cmd->nargs++] =3D arg; } @@ -1642,10 +1621,7 @@ virCommandAddArgSet(virCommandPtr cmd, const char *c= onst*vals) narg++; /* narg plus trailing NULL. */ - if (VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, narg + 1) < 0) { - cmd->has_error =3D ENOMEM; - return; - } + ignore_value(VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, narg + = 1)); narg =3D 0; while (vals[narg] !=3D NULL) { @@ -1678,10 +1654,7 @@ virCommandAddArgList(virCommandPtr cmd, ...) va_end(list); /* narg plus trailing NULL. */ - if (VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, narg + 1) < 0) { - cmd->has_error =3D ENOMEM; - return; - } + ignore_value(VIR_RESIZE_N(cmd->args, cmd->maxargs, cmd->nargs, narg + = 1)); va_start(list, cmd); while (1) { @@ -1765,10 +1738,7 @@ virCommandSetSendBuffer(virCommandPtr cmd, } i =3D virCommandGetNumSendBuffers(cmd); - if (VIR_REALLOC_N(cmd->sendBuffers, i + 1) < 0) { - cmd->has_error =3D ENOMEM; - return -1; - } + ignore_value(VIR_REALLOC_N(cmd->sendBuffers, i + 1)); cmd->sendBuffers[i].fd =3D fd; cmd->sendBuffers[i].buffer =3D buffer; @@ -2099,11 +2069,7 @@ virCommandToString(virCommandPtr cmd, bool linebreak= s) /* 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 =3D=3D 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; @@ -2339,11 +2305,7 @@ virCommandProcessIO(virCommandPtr cmd) */ int virCommandExec(virCommandPtr cmd, gid_t *groups, int ngroups) { - if (!cmd ||cmd->has_error =3D=3D 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; @@ -2388,11 +2350,7 @@ virCommandRun(virCommandPtr cmd, int *exitstatus) char *str; int tmpfd; - if (!cmd ||cmd->has_error =3D=3D 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; @@ -2539,11 +2497,7 @@ virCommandRunAsync(virCommandPtr cmd, pid_t *pid) bool synchronous =3D false; int infd[2] =3D {-1, -1}; - if (!cmd || cmd->has_error =3D=3D 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; @@ -2692,11 +2646,7 @@ virCommandWait(virCommandPtr cmd, int *exitstatus) int ret; int status =3D 0; - if (!cmd ||cmd->has_error =3D=3D 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; @@ -2835,11 +2785,8 @@ int virCommandHandshakeWait(virCommandPtr cmd) { char c; int rv; - if (!cmd ||cmd->has_error =3D=3D 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; @@ -2896,11 +2843,8 @@ int virCommandHandshakeWait(virCommandPtr cmd) int virCommandHandshakeNotify(virCommandPtr cmd) { char c =3D '1'; - if (!cmd ||cmd->has_error =3D=3D 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; --=20 2.29.2