]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
Orangefs: address problems found by static checker
authorMike Marshall <hubcap@omnibond.com>
Wed, 29 Jul 2015 17:36:37 +0000 (13:36 -0400)
committerMike Marshall <hubcap@omnibond.com>
Sat, 3 Oct 2015 15:40:03 +0000 (11:40 -0400)
  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 <hubcap@omnibond.com>
fs/orangefs/dir.c
fs/orangefs/file.c
fs/orangefs/pvfs2-utils.c
fs/orangefs/xattr.c

index 9b5f4bb17874b04601ddbedd1f78de5d3330bb7f..c126c0fc6e0f7937c281dd5eeecc25650194afd0 100644 (file)
@@ -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",
index 4ba1b6c48aa71e6434ab459d09343936ac042497..013a07c8bdfd69e71e158eac4e20197ac37aca0f 100644 (file)
@@ -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",
index 107f425d2e9064de3597fa294ed01fc0f3295a36..8d4411ca118fcb72b225785f2a0cbecf7f076f2d 100644 (file)
@@ -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,
index 2766090f5ca4a0a00bb531250af4de732f157875..227eaa47b1e128c050308b277e0a1f1bdabe0b4f 100644 (file)
@@ -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;
        }