From patchwork Wed Aug 5 14:46:12 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 6950411 Return-Path: X-Original-To: patchwork-linux-nfs@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 9DA199F358 for ; Wed, 5 Aug 2015 14:46:17 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id BBDB720437 for ; Wed, 5 Aug 2015 14:46:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DBDB720430 for ; Wed, 5 Aug 2015 14:46:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752433AbbHEOqP (ORCPT ); Wed, 5 Aug 2015 10:46:15 -0400 Received: from mail-qg0-f47.google.com ([209.85.192.47]:33008 "EHLO mail-qg0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751226AbbHEOqO (ORCPT ); Wed, 5 Aug 2015 10:46:14 -0400 Received: by qged69 with SMTP id d69so31330923qge.0 for ; Wed, 05 Aug 2015 07:46:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-type:content-transfer-encoding; bh=b/tBt4OgZz+NUM1iO7X2Q5Uhka4SvHHFZDgJDyqp4CU=; b=BflLjPkNK27AA4ZDvLIALqYoHz7AxZR6YJD9e1JseSfffBHSHR1quoIYmEJQq2vD39 UMfrIRbvqVwEpqSD3CDPROmHeo2YzEVLgnwARAwPrbqBXl9N1TnmA0E29leKpx/t5eEU Wit+3iOStpAxpvIEHnf2spAOC/oFMMZ1v+dqOj2OyvWskvxe7dMG1Pvi4HeAJSAf9mmJ frChfIwS0bskUJ46HEaxg8twtgB6GSlwoCXQ+UG9Ns3Z2MvUVM/VxdF97wgPde/VMbf7 5Qll+WiBoZeq1yLDmKMgYRFjQtWzKk2mN8GfjH1eFwy41g0Sq9nW/8+m241hZC3PHrYe NekQ== X-Received: by 10.140.84.104 with SMTP id k95mr17296208qgd.45.1438785973979; Wed, 05 Aug 2015 07:46:13 -0700 (PDT) Received: from manet.1015granger.net ([2604:8800:100:81fc:82ee:73ff:fe43:d64f]) by smtp.gmail.com with ESMTPSA id 16sm1467016qhg.32.2015.08.05.07.46.13 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 05 Aug 2015 07:46:13 -0700 (PDT) Subject: [PATCH v2 5/6] nfsidmap: Fix error handling in name_lookup() From: Chuck Lever To: steved@redhat.com Cc: linux-nfs@vger.kernel.org Date: Wed, 05 Aug 2015 10:46:12 -0400 Message-ID: <20150805144612.13266.17288.stgit@manet.1015granger.net> In-Reply-To: <20150805143258.13266.92369.stgit@manet.1015granger.net> References: <20150805143258.13266.92369.stgit@manet.1015granger.net> User-Agent: StGit/0.17.1-3-g7d0f MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP As near as I can tell, the exit status of nfsidmap is supposed to be zero (success) or one (failure). The return value of name_lookup() becomes the exit status, so it should return only zero or one. The libnfsidmap calls return a signed integer, either 0 or negative errno values. These have to be translated to an exit status. libkeyutils calls return a signed long, either 0 or -1. These also have to be translated to an exit status. Signed-off-by: Chuck Lever --- utils/nfsidmap/nfsidmap.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/utils/nfsidmap/nfsidmap.c b/utils/nfsidmap/nfsidmap.c index 9468c08..dbfac9b 100644 --- a/utils/nfsidmap/nfsidmap.c +++ b/utils/nfsidmap/nfsidmap.c @@ -235,7 +235,7 @@ static int id_lookup(char *name_at_domain, key_serial_t key, int type) /* * Find the name@domain string from either a user or group id */ -int name_lookup(char *id, key_serial_t key, int type) +static int name_lookup(char *id, key_serial_t key, int type) { char name[IDMAP_NAMESZ]; char domain[NFS4_MAX_DOMAIN_LEN]; @@ -244,11 +244,10 @@ int name_lookup(char *id, key_serial_t key, int type) int rc; rc = nfs4_get_default_domain(NULL, domain, NFS4_MAX_DOMAIN_LEN); - if (rc != 0) { + if (rc) { xlog_errno(rc, "name_lookup: nfs4_get_default_domain failed: %m"); - rc = -1; - goto out; + return EXIT_FAILURE; } if (type == USER) { @@ -258,16 +257,18 @@ int name_lookup(char *id, key_serial_t key, int type) gid = atoi(id); rc = nfs4_gid_to_name(gid, domain, name, IDMAP_NAMESZ); } - if (rc < 0) + if (rc) { xlog_errno(rc, "name_lookup: %s: failed: %m", (type == USER ? "nfs4_uid_to_name" : "nfs4_gid_to_name")); + return EXIT_FAILURE; + } - if (rc == 0) { - rc = keyctl_instantiate(key, &name, strlen(name), 0); - if (rc < 0) - xlog_err("name_lookup: keyctl_instantiate failed: %m"); + rc = EXIT_SUCCESS; + if (keyctl_instantiate(key, &name, strlen(name), 0)) { + rc = EXIT_FAILURE; + xlog_err("name_lookup: keyctl_instantiate failed: %m"); } -out: + return rc; }