]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Update for cppcheck v1.80
authorBrian Behlendorf <behlendorf1@llnl.gov>
Sat, 18 Nov 2017 22:08:00 +0000 (14:08 -0800)
committerGitHub <noreply@github.com>
Sat, 18 Nov 2017 22:08:00 +0000 (14:08 -0800)
Resolve new warnings and errors from cppcheck v1.80.

* [lib/libshare/libshare.c:543]: (warning)
  Possible null pointer dereference: protocol
* [lib/libzfs/libzfs_dataset.c:2323]: (warning)
  Possible null pointer dereference: srctype
* [lib/libzfs/libzfs_import.c:318]: (error)
  Uninitialized variable: link
* [module/zfs/abd.c:353]: (error) Uninitialized variable: sg
* [module/zfs/abd.c:353]: (error) Uninitialized variable: i
* [module/zfs/abd.c:385]: (error) Uninitialized variable: sg
* [module/zfs/abd.c:385]: (error) Uninitialized variable: i
* [module/zfs/abd.c:553]: (error) Uninitialized variable: i
* [module/zfs/abd.c:553]: (error) Uninitialized variable: sg
* [module/zfs/abd.c:763]: (error) Uninitialized variable: i
* [module/zfs/abd.c:763]: (error) Uninitialized variable: sg
* [module/zfs/abd.c:305]: (error) Uninitialized variable: tmp_page
* [module/zfs/zpl_xattr.c:342]: (warning)
   Possible null pointer dereference: value
* [module/zfs/zvol.c:208]: (error) Uninitialized variable: p

Convert the following suppression to inline.

* [module/zfs/zfs_vnops.c:840]: (error)
  Possible null pointer dereference: aiov

Exclude HAVE_UIO_ZEROCOPY and HAVE_DNLC from analysis since
these macro's will never be defined until this functionality
is implemented.

Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #6879

.github/suppressions.txt
Makefile.am
lib/libshare/libshare.c
lib/libzfs/libzfs_dataset.c
lib/libzfs/libzfs_import.c
module/zfs/abd.c
module/zfs/zfs_vnops.c
module/zfs/zpl_xattr.c
module/zfs/zvol.c

index 61a2cd233689c9564639c27f33c3917b973131a5..f9508a24b4ad32e4f4cd8e1554d052c0037b25e9 100644 (file)
@@ -1,4 +1,3 @@
-nullPointer:./module/zfs/zfs_vnops.c:839
 preprocessorErrorDirective:./module/zfs/vdev_raidz_math_avx512f.c:243
 preprocessorErrorDirective:./module/zfs/vdev_raidz_math_sse2.c:266
 
index 05cafc702bd890f180fa5118eb73c51c7e91184f..a4dccdda6a9f2046c20ccd148fd95a6fdf77595d 100644 (file)
@@ -72,10 +72,10 @@ lint: cppcheck paxcheck
 
 cppcheck:
        @if type cppcheck > /dev/null 2>&1; then \
-               cppcheck --quiet --force --error-exitcode=2 \
+               cppcheck --quiet --force --error-exitcode=2 --inline-suppr \
                        --suppressions-list=.github/suppressions.txt \
-                       -UHAVE_SSE2 -UHAVE_AVX512F \
-                       ${top_srcdir}; \
+                       -UHAVE_SSE2 -UHAVE_AVX512F -UHAVE_UIO_ZEROCOPY \
+                       -UHAVE_DNLC ${top_srcdir}; \
        fi
 
 paxcheck:
index aa565ca828622f6cc207288aee60cb9bf2f99c1e..022df016f26d895ea9fdd80aa2cbc7e898fc345b 100644 (file)
@@ -493,20 +493,10 @@ int
 sa_enable_share(sa_share_t share, char *protocol)
 {
        sa_share_impl_t impl_share = (sa_share_impl_t)share;
-       int rc, ret;
-       boolean_t found_protocol;
+       int rc, ret = SA_OK;
+       boolean_t found_protocol = B_FALSE;
        sa_fstype_t *fstype;
 
-#ifdef DEBUG
-       fprintf(stderr, "sa_enable_share: share->sharepath=%s, protocol=%s\n",
-           impl_share->sharepath, protocol);
-#endif
-
-       assert(impl_share->handle != NULL);
-
-       ret = SA_OK;
-       found_protocol = B_FALSE;
-
        fstype = fstypes;
        while (fstype != NULL) {
                if (protocol == NULL || strcmp(fstype->name, protocol) == 0) {
@@ -534,18 +524,10 @@ int
 sa_disable_share(sa_share_t share, char *protocol)
 {
        sa_share_impl_t impl_share = (sa_share_impl_t)share;
-       int rc, ret;
-       boolean_t found_protocol;
+       int rc, ret = SA_OK;
+       boolean_t found_protocol = B_FALSE;
        sa_fstype_t *fstype;
 
-#ifdef DEBUG
-       fprintf(stderr, "sa_disable_share: share->sharepath=%s, protocol=%s\n",
-           impl_share->sharepath, protocol);
-#endif
-
-       ret = SA_OK;
-       found_protocol = B_FALSE;
-
        fstype = fstypes;
        while (fstype != NULL) {
                if (protocol == NULL || strcmp(fstype->name, protocol) == 0) {
@@ -696,11 +678,6 @@ sa_parse_legacy_options(sa_group_t group, char *options, char *proto)
 {
        sa_fstype_t *fstype;
 
-#ifdef DEBUG
-       fprintf(stderr, "sa_parse_legacy_options: options=%s, proto=%s\n",
-           options, proto);
-#endif
-
        fstype = fstypes;
        while (fstype != NULL) {
                if (strcmp(fstype->name, proto) != 0) {
@@ -787,12 +764,6 @@ sa_zfs_process_share(sa_handle_t handle, sa_group_t group, sa_share_t share,
        sa_handle_impl_t impl_handle = (sa_handle_impl_t)handle;
        sa_share_impl_t impl_share = (sa_share_impl_t)share;
 
-#ifdef DEBUG
-       fprintf(stderr, "sa_zfs_process_share: mountpoint=%s, proto=%s, "
-           "shareopts=%s, sourcestr=%s, dataset=%s\n", mountpoint, proto,
-           shareopts, sourcestr, dataset);
-#endif
-
        return (process_share(impl_handle, impl_share, mountpoint, NULL,
            proto, shareopts, NULL, dataset, B_FALSE));
 }
index 0a9a4277deee6b7d7a5100f359f428bb401262be..a0a0afe1f4e3608ec03c4cd9201e329a6607d990 100644 (file)
@@ -2306,8 +2306,10 @@ static void
 get_source(zfs_handle_t *zhp, zprop_source_t *srctype, char *source,
     char *statbuf, size_t statlen)
 {
-       if (statbuf == NULL || *srctype == ZPROP_SRC_TEMPORARY)
+       if (statbuf == NULL ||
+           srctype == NULL || *srctype == ZPROP_SRC_TEMPORARY) {
                return;
+       }
 
        if (source == NULL) {
                *srctype = ZPROP_SRC_NONE;
index e1af795b61f4c24568f3788fbebd018acab43377..6203cd19bcd71652e4cf99a128731a5d2e573f2e 100644 (file)
@@ -310,7 +310,7 @@ zpool_label_disk_wait(char *path, int timeout_ms)
                dev = udev_device_new_from_subsystem_sysname(udev,
                    "block", sysname);
                if ((dev != NULL) && udev_device_is_ready(dev)) {
-                       struct udev_list_entry *links, *link;
+                       struct udev_list_entry *links, *link = NULL;
 
                        ret = 0;
                        links = udev_device_get_devlinks_list_entry(dev);
index 5e31d192e17fb189340df6dc1f9c2c99a195a7c9..0bd7a262f79d801a66d0f301323d16f7537aaba8 100644 (file)
@@ -250,7 +250,7 @@ abd_alloc_pages(abd_t *abd, size_t size)
        struct list_head pages;
        struct sg_table table;
        struct scatterlist *sg;
-       struct page *page, *tmp_page;
+       struct page *page, *tmp_page = NULL;
        gfp_t gfp = __GFP_NOWARN | GFP_NOIO;
        gfp_t gfp_comp = (gfp | __GFP_NORETRY | __GFP_COMP) & ~__GFP_RECLAIM;
        int max_order = MIN(zfs_abd_scatter_max_order, MAX_ORDER - 1);
@@ -334,12 +334,12 @@ abd_alloc_pages(abd_t *abd, size_t size)
 static void
 abd_alloc_pages(abd_t *abd, size_t size)
 {
-       struct scatterlist *sg;
+       struct scatterlist *sg = NULL;
        struct sg_table table;
        struct page *page;
        gfp_t gfp = __GFP_NOWARN | GFP_NOIO;
        int nr_pages = abd_chunkcnt_for_bytes(size);
-       int i;
+       int i = 0;
 
        while (sg_alloc_table(&table, nr_pages, gfp)) {
                ABDSTAT_BUMP(abdstat_scatter_sg_table_retry);
@@ -370,11 +370,11 @@ abd_alloc_pages(abd_t *abd, size_t size)
 static void
 abd_free_pages(abd_t *abd)
 {
-       struct scatterlist *sg;
+       struct scatterlist *sg = NULL;
        struct sg_table table;
        struct page *page;
        int nr_pages = ABD_SCATTER(abd).abd_nents;
-       int order, i;
+       int order, i = 0;
 
        if (abd->abd_flags & ABD_FLAG_MULTI_ZONE)
                ABDSTAT_BUMPDOWN(abdstat_scatter_page_multi_zone);
@@ -543,8 +543,8 @@ abd_verify(abd_t *abd)
                ASSERT3P(abd->abd_u.abd_linear.abd_buf, !=, NULL);
        } else {
                size_t n;
-               int i;
-               struct scatterlist *sg;
+               int i = 0;
+               struct scatterlist *sg = NULL;
 
                ASSERT3U(ABD_SCATTER(abd).abd_nents, >, 0);
                ASSERT3U(ABD_SCATTER(abd).abd_offset, <,
@@ -747,8 +747,8 @@ abd_get_offset_impl(abd_t *sabd, size_t off, size_t size)
                abd->abd_u.abd_linear.abd_buf =
                    (char *)sabd->abd_u.abd_linear.abd_buf + off;
        } else {
-               int i;
-               struct scatterlist *sg;
+               int i = 0;
+               struct scatterlist *sg = NULL;
                size_t new_offset = sabd->abd_u.abd_scatter.abd_offset + off;
 
                abd = abd_alloc_struct();
index 703f6299fd6bbd1989ce8e68d9250f4c85617b73..a60cd619838a4908bc64aac1f8834bafe7cfd4c7 100644 (file)
@@ -836,6 +836,7 @@ zfs_write(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
                            aiov->iov_base != abuf->b_data)) {
                                ASSERT(xuio);
                                dmu_write(zfsvfs->z_os, zp->z_id, woff,
+                                   /* cppcheck-suppress nullPointer */
                                    aiov->iov_len, aiov->iov_base, tx);
                                dmu_return_arcbuf(abuf);
                                xuio_stat_wbuf_copied();
index 0c626b122193fde87444a6737ced0d27a733a913..ebb6e7be2cac5498e7ae1b57f04a8bab41733136 100644 (file)
@@ -333,7 +333,7 @@ zpl_xattr_get_sa(struct inode *ip, const char *name, void *value, size_t size)
        if (error)
                return (error);
 
-       if (!size)
+       if (size == 0 || value == NULL)
                return (nv_size);
 
        if (size < nv_size)
index 2f75a2faa81fe20eaf10553ee46ce4c48ba34ce1..5cd190c09bdf5bc6279a1404ecdd566a67b71fe3 100644 (file)
@@ -202,7 +202,7 @@ static zvol_state_t *
 zvol_find_by_name_hash(const char *name, uint64_t hash, int mode)
 {
        zvol_state_t *zv;
-       struct hlist_node *p;
+       struct hlist_node *p = NULL;
 
        mutex_enter(&zvol_state_lock);
        hlist_for_each(p, ZVOL_HT_HEAD(hash)) {