From patchwork Wed Jul 29 19:57:59 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Marshall X-Patchwork-Id: 6896171 Return-Path: X-Original-To: patchwork-linux-fsdevel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 1502DC05AC for ; Wed, 29 Jul 2015 19:58:25 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 032B720525 for ; Wed, 29 Jul 2015 19:58:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id ADBC620519 for ; Wed, 29 Jul 2015 19:58:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753543AbbG2T6U (ORCPT ); Wed, 29 Jul 2015 15:58:20 -0400 Received: from mail-qg0-f54.google.com ([209.85.192.54]:33129 "EHLO mail-qg0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753090AbbG2T6S (ORCPT ); Wed, 29 Jul 2015 15:58:18 -0400 Received: by qged69 with SMTP id d69so10008929qge.0 for ; Wed, 29 Jul 2015 12:58:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=XzBxL4qTowMn4tDOPS8jTq+JbNFxyxJb2QwAUe9KnWo=; b=JiGgQJvnbaminBYjyfBlQXgJEB/XJoaMXedYpHODPVvd/Yter5HQXFkWSm6Y+pyAFP EsuyMAtELtnDABxw/mZF3XbU+iekd5OmMoaPtocKGAgEgt3iyz0WAqVckdsPIRr7+YJQ tYDJB1stYL27xT6fDiINLHEp8UUD01bZ1o4Ik0LOXjqE52394cgqRS3fwQogC+5F0owI mv92mLMwlxzJEjrzKKmiRy4Pnpr8ob5wJiLndhhHzO5kgjEsWi2UCZTtMPgqGOP1/tmf qSh3r5i7NDLtoa3MnQ2Gw9SI8jOCRQNww5dEQAIVIB3f+yCMXEADOmq9dovncRN8Vve7 TgxQ== X-Gm-Message-State: ALoCoQmUAA7oiAMdgxNKaQtuSwQcU8RatRbuPkG099nPElPWcLWzI2Q9enDSYS8fU29AC3G98MoZ X-Received: by 10.140.106.101 with SMTP id d92mr63680195qgf.70.1438199897974; Wed, 29 Jul 2015 12:58:17 -0700 (PDT) Received: from logtruck.clemson.edu (logtruck.clemson.edu. [130.127.148.78]) by smtp.gmail.com with ESMTPSA id 10sm14542813qgl.9.2015.07.29.12.58.16 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Jul 2015 12:58:16 -0700 (PDT) From: hubcap X-Google-Original-From: hubcap To: viro@zeniv.linux.org.uk Cc: Mike Marshall , linux-fsdevel@vger.kernel.org Subject: [PATCH V3 10/7] Orangefs: address problems found by static checker Date: Wed, 29 Jul 2015 15:57:59 -0400 Message-Id: <1438199879-27582-1-git-send-email-hubcap@logtruck.clemson.edu> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1437143897-9069-1-git-send-email-root@logtruck.clemson.edu> References: <1437143897-9069-1-git-send-email-root@logtruck.clemson.edu> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, 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 From: Mike Marshall Don't check for negative rc from boolean. Don't pointlessly initialize variables, it short-circuits gcc's uninitialized variable warnings. And max_new_nr_segs can never be zero, so don't check for it. Preserve original kstrdup pointer for freeing later. Don't check for negative value in unsigned variable. Signed-off-by: Mike Marshall --- fs/orangefs/dir.c | 16 ---------------- fs/orangefs/file.c | 18 ++++++------------ fs/orangefs/pvfs2-utils.c | 4 +++- fs/orangefs/xattr.c | 6 ++---- 4 files changed, 11 insertions(+), 33 deletions(-) -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" 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/fs/orangefs/dir.c b/fs/orangefs/dir.c index 9b5f4bb..c126c0f 100644 --- a/fs/orangefs/dir.c +++ b/fs/orangefs/dir.c @@ -104,7 +104,6 @@ static void readdir_handle_dtor(struct pvfs2_bufmap *bufmap, * * \param dir_emit callback function called for each entry read. * - * \retval <0 on error * \retval 0 when directory has been completely traversed * \retval >0 if we don't call dir_emit for all entries * @@ -253,8 +252,6 @@ get_new_buffer_index: __func__, llu(pos)); ret = dir_emit(ctx, ".", 1, ino, DT_DIR); - if (ret < 0) - goto out_destroy_handle; ctx->pos++; gossip_ldebug(GOSSIP_DIR_DEBUG, "%s: ctx->pos:%lld\n", @@ -270,8 +267,6 @@ get_new_buffer_index: __func__, llu(pos)); ret = dir_emit(ctx, "..", 2, ino, DT_DIR); - if (ret < 0) - goto out_destroy_handle; ctx->pos++; gossip_ldebug(GOSSIP_DIR_DEBUG, "%s: ctx->pos:%lld\n", @@ -293,17 +288,6 @@ get_new_buffer_index: (unsigned long)pos); ret = dir_emit(ctx, current_entry, len, current_ino, DT_UNKNOWN); - if (ret < 0) { - gossip_debug(GOSSIP_DIR_DEBUG, - "dir_emit() failed. ret:%d\n", - ret); - if (i < 2) { - gossip_err("dir_emit failed on one of the first two true PVFS directory entries.\n"); - gossip_err("Duplicate entries may appear.\n"); - } - buffer_full = 1; - break; - } ctx->pos++; gossip_ldebug(GOSSIP_DIR_DEBUG, "%s: ctx->pos:%lld\n", diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c index 4ba1b6c..013a07c 100644 --- a/fs/orangefs/file.c +++ b/fs/orangefs/file.c @@ -463,12 +463,12 @@ static ssize_t do_readv_writev(enum PVFS_io_type type, struct file *file, unsigned int to_free; size_t count; unsigned long seg; - unsigned long new_nr_segs = 0; - unsigned long max_new_nr_segs = 0; - unsigned long seg_count = 0; - unsigned long *seg_array = NULL; - struct iovec *iovecptr = NULL; - struct iovec *ptr = NULL; + unsigned long new_nr_segs; + unsigned long max_new_nr_segs; + unsigned long seg_count; + unsigned long *seg_array; + struct iovec *iovecptr; + struct iovec *ptr; total_count = 0; ret = -EINVAL; @@ -477,12 +477,6 @@ static ssize_t do_readv_writev(enum PVFS_io_type type, struct file *file, /* Compute total and max number of segments after split */ max_new_nr_segs = bound_max_iovecs(iov, nr_segs, &count); - if (max_new_nr_segs < 0) { - gossip_lerr("%s: could not bound iovec %lu\n", - __func__, - max_new_nr_segs); - goto out; - } gossip_debug(GOSSIP_FILE_DEBUG, "%s-BEGIN(%pU): count(%d) after estimate_max_iovecs.\n", diff --git a/fs/orangefs/pvfs2-utils.c b/fs/orangefs/pvfs2-utils.c index 107f425..8d4411c 100644 --- a/fs/orangefs/pvfs2-utils.c +++ b/fs/orangefs/pvfs2-utils.c @@ -1077,6 +1077,7 @@ void debug_string_to_mask(char *debug_string, void *mask, int type) char *unchecked_keyword; int i; char *strsep_fodder = kstrdup(debug_string, GFP_KERNEL); + char *original_pointer; int element_count = 0; struct client_debug_mask *c_mask; __u64 *k_mask; @@ -1092,6 +1093,7 @@ void debug_string_to_mask(char *debug_string, void *mask, int type) element_count = num_kmod_keyword_mask_map; } + original_pointer = strsep_fodder; while ((unchecked_keyword = strsep(&strsep_fodder, ","))) if (strlen(unchecked_keyword)) { for (i = 0; i < element_count; i++) @@ -1105,7 +1107,7 @@ void debug_string_to_mask(char *debug_string, void *mask, int type) &k_mask); } - kfree(strsep_fodder); + kfree(original_pointer); } void do_c_mask(int i, diff --git a/fs/orangefs/xattr.c b/fs/orangefs/xattr.c index 2766090..227eaa4 100644 --- a/fs/orangefs/xattr.c +++ b/fs/orangefs/xattr.c @@ -77,10 +77,8 @@ ssize_t pvfs2_inode_getxattr(struct inode *inode, const char *prefix, gossip_err("pvfs2_inode_getxattr: bogus NULL pointers\n"); return -EINVAL; } - if (size < 0 || - (strlen(name) + strlen(prefix)) >= PVFS_MAX_XATTR_NAMELEN) { - gossip_err("Invalid size (%d) or key length (%d)\n", - (int)size, + if ((strlen(name) + strlen(prefix)) >= PVFS_MAX_XATTR_NAMELEN) { + gossip_err("Invalid key length (%d)\n", (int)(strlen(name) + strlen(prefix))); return -EINVAL; }