From patchwork Wed Aug 30 15:59:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Ga=C3=ABtan_Rivet?= X-Patchwork-Id: 28084 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 4F5892C15; Wed, 30 Aug 2017 18:00:12 +0200 (CEST) Received: from mail-wr0-f171.google.com (mail-wr0-f171.google.com [209.85.128.171]) by dpdk.org (Postfix) with ESMTP id 38B50F94 for ; Wed, 30 Aug 2017 18:00:10 +0200 (CEST) Received: by mail-wr0-f171.google.com with SMTP id z91so19755476wrc.1 for ; Wed, 30 Aug 2017 09:00:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=BcXzmzCpYo5tHQ/q9cnxg/jlJ7rX4/t/HwNYYgta38w=; b=hVbdk/7ECcKFkYB/a3b/WbJTTdjMiv+ITqMPTZP7ZNcX+lEuAdhyhlGc7/AoaizpSp nPDzQztLMy1acZ7psjf2t0EiA5l7vfx6ae8gCavgtYzZCdmkzNKspPHmKDJ8RSNaWnX5 2autOC5WCrUGNlKfUZYjpEdgoqQofihOXavBbhf+JavH6QBT0FOr6NMB7/9JY23zzEYF Mre25Vrlbem9jL785j21pAUqcxpbAyWFtCMz/fr3sLOJIPo1g5CvT+az+9UzTmHn7Y1H lRTFoFqcnu8RWEtKOuWV0ktHqKlZE8czaIlwHsW9nqFg+pj4+E8zkVtlpx46cUcjuq6T zwiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=BcXzmzCpYo5tHQ/q9cnxg/jlJ7rX4/t/HwNYYgta38w=; b=rwYg3MqKE5zsYyR7lT1Pn1uocfRRMEPbUbkibT07o/wuGCF9wz3tQa/TNhfknr+ucs ssaqVDW8hRENLjrSOrczq57biwLodCbsoOquVYiFxzr+ALgnCG98e7ZwqkBAKVapDdJs om8A6YV9NZtEt92zjqUpT0TmfyUTLNcrONqbzmD0pdh12cW7x8tEzbOQIDdDrHKYZhQa AjmTp7bOZRLEtFz2VXJK9qRwaTRR8gC7no46SnbIdOTsgA2LCpuijEnXWNbEcdOYaVDx 69eDK5KUYLFH4nyxegEUumeeY3i8QCSOjRw6wSIqI2QoRs93A00/IP8FByKNllg7RqTh RplQ== X-Gm-Message-State: AHYfb5gMLtUtx3UGDGjySQhtgh/JtJyc2EGpyT2bRKSj4saGMAE8M6XC e3Ua/fQZQrKrI4QCJQo= X-Received: by 10.223.136.206 with SMTP id g14mr1384192wrg.272.1504108809412; Wed, 30 Aug 2017 09:00:09 -0700 (PDT) Received: from bidouze.dev.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id c1sm5057208wre.83.2017.08.30.09.00.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 30 Aug 2017 09:00:08 -0700 (PDT) From: Gaetan Rivet To: dev@dpdk.org Cc: Matan Azrad , Gaetan Rivet , stable@dpdk.org Date: Wed, 30 Aug 2017 17:59:54 +0200 Message-Id: <1504108794-21917-1-git-send-email-gaetan.rivet@6wind.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1504018748-4766-1-git-send-email-matan@mellanox.com> References: <1504018748-4766-1-git-send-email-matan@mellanox.com> Subject: [dpdk-dev] [PATCH] net/failsafe: fix errno set on command execution X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This is unacceptable behavior. Fixes: a0194d828100 ("net/failsafe: add flexible device definition") Fixes: 35ffe4208140 ("net/failsafe: fix missing pclose after popen") Cc: stable@dpdk.org Reported-by: Matan Azrad Signed-off-by: Gaetan Rivet --- drivers/net/failsafe/failsafe_args.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/drivers/net/failsafe/failsafe_args.c b/drivers/net/failsafe/failsafe_args.c index 1f22416..cc29c5e 100644 --- a/drivers/net/failsafe/failsafe_args.c +++ b/drivers/net/failsafe/failsafe_args.c @@ -115,8 +115,7 @@ fs_execute_cmd(struct sub_device *sdev, char *cmdline) /* store possible newline as well */ char output[DEVARGS_MAXLEN + 1]; size_t len; - int old_err; - int ret, pclose_ret; + int ret; RTE_ASSERT(cmdline != NULL || sdev->cmdline != NULL); if (sdev->cmdline == NULL) { @@ -135,12 +134,10 @@ fs_execute_cmd(struct sub_device *sdev, char *cmdline) sdev->cmdline[i] = ' '; } DEBUG("'%s'", sdev->cmdline); - old_err = errno; fp = popen(sdev->cmdline, "r"); if (fp == NULL) { - ret = errno; + ret = -errno; ERROR("popen: %s", strerror(errno)); - errno = old_err; return ret; } /* We only read one line */ @@ -155,18 +152,11 @@ fs_execute_cmd(struct sub_device *sdev, char *cmdline) goto ret_pclose; } ret = fs_parse_device(sdev, output); - if (ret) { + if (ret) ERROR("Parsing device '%s' failed", output); - goto ret_pclose; - } ret_pclose: - pclose_ret = pclose(fp); - if (pclose_ret) { - pclose_ret = errno; + if (pclose(fp) == -1) ERROR("pclose: %s", strerror(errno)); - errno = old_err; - return pclose_ret; - } return ret; }