6beaed3f99
since Debian unstable has not been updated yet.
281 lines
9.1 KiB
Diff
281 lines
9.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Brian Behlendorf <behlendorf1@llnl.gov>
|
|
Date: Sat, 18 Nov 2017 14:08:00 -0800
|
|
Subject: [PATCH] Update for cppcheck v1.80
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
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
|
|
(cherry picked from commit aebc5df418cb52cc2ec9fa6c9c147ca3b048bc49)
|
|
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
|
---
|
|
Makefile.am | 6 +++---
|
|
lib/libshare/libshare.c | 37 ++++---------------------------------
|
|
lib/libzfs/libzfs_dataset.c | 4 +++-
|
|
lib/libzfs/libzfs_import.c | 2 +-
|
|
module/zfs/abd.c | 18 +++++++++---------
|
|
module/zfs/zfs_vnops.c | 1 +
|
|
module/zfs/zpl_xattr.c | 2 +-
|
|
module/zfs/zvol.c | 2 +-
|
|
8 files changed, 23 insertions(+), 49 deletions(-)
|
|
|
|
diff --git a/Makefile.am b/Makefile.am
|
|
index e46ac2dbe..508d3f40e 100644
|
|
--- a/Makefile.am
|
|
+++ b/Makefile.am
|
|
@@ -65,10 +65,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:
|
|
diff --git a/lib/libshare/libshare.c b/lib/libshare/libshare.c
|
|
index aa565ca82..022df016f 100644
|
|
--- a/lib/libshare/libshare.c
|
|
+++ b/lib/libshare/libshare.c
|
|
@@ -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));
|
|
}
|
|
diff --git a/lib/libzfs/libzfs_dataset.c b/lib/libzfs/libzfs_dataset.c
|
|
index d6e85024d..b65dbc826 100644
|
|
--- a/lib/libzfs/libzfs_dataset.c
|
|
+++ b/lib/libzfs/libzfs_dataset.c
|
|
@@ -2244,8 +2244,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;
|
|
diff --git a/lib/libzfs/libzfs_import.c b/lib/libzfs/libzfs_import.c
|
|
index 8b5222475..39c067293 100644
|
|
--- a/lib/libzfs/libzfs_import.c
|
|
+++ b/lib/libzfs/libzfs_import.c
|
|
@@ -309,7 +309,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);
|
|
diff --git a/module/zfs/abd.c b/module/zfs/abd.c
|
|
index 765ac7fb7..138b041c8 100644
|
|
--- a/module/zfs/abd.c
|
|
+++ b/module/zfs/abd.c
|
|
@@ -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, <,
|
|
@@ -749,8 +749,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();
|
|
diff --git a/module/zfs/zfs_vnops.c b/module/zfs/zfs_vnops.c
|
|
index 6a1dab5c9..6f6ce79db 100644
|
|
--- a/module/zfs/zfs_vnops.c
|
|
+++ b/module/zfs/zfs_vnops.c
|
|
@@ -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();
|
|
diff --git a/module/zfs/zpl_xattr.c b/module/zfs/zpl_xattr.c
|
|
index 0c626b122..ebb6e7be2 100644
|
|
--- a/module/zfs/zpl_xattr.c
|
|
+++ b/module/zfs/zpl_xattr.c
|
|
@@ -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)
|
|
diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c
|
|
index 5293f95fb..aac494209 100644
|
|
--- a/module/zfs/zvol.c
|
|
+++ b/module/zfs/zvol.c
|
|
@@ -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)) {
|
|
--
|
|
2.14.2
|
|
|