summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSami Kerola <kerolasa@iki.fi>2011-10-11 22:01:19 +0200
committerSami Kerola <kerolasa@iki.fi>2011-12-20 17:30:50 +0100
commit9057b18a32583903df730cf49c8e065ca6015cbb (patch)
tree5337dfdd7c6c3de37704581935ffd0d331acf374
parentc1fa3bfce865665ab7645255ed68dc0d79a70822 (diff)
downloadprocps-ng-9057b18a32583903df730cf49c8e065ca6015cbb.tar.gz
libproc-ng & ps: fix warning reported by smatch
proc/ksym.c +279 read_file(54) info: redundant null check on buf calling free() proc/ksym.c +330 parse_ksyms(41) info: redundant null check on ksyms_data calling free() proc/ksym.c +332 parse_ksyms(43) info: redundant null check on ksyms_index calling free() proc/ksym.c +451 sysmap_mmap(110) info: redundant null check on sysmap_index calling free() proc/procps.h:74:5: warning: undefined preprocessor identifier 'SHARED' proc/slab.c +145 parse_slabinfo20(24) error: potential null derefence 'prev'. proc/slab.c +222 parse_slabinfo11(21) error: potential null derefence 'prev'. ps/stacktrace.c +131 debug(6) error: snprintf() is printing too much 99 vs 16 Signed-off-by: Sami Kerola <kerolasa@iki.fi>
-rw-r--r--proc/alloc.c1
-rw-r--r--proc/ksym.c10
-rw-r--r--proc/procps.h6
-rw-r--r--proc/slab.c6
-rw-r--r--ps/stacktrace.c2
5 files changed, 15 insertions, 10 deletions
diff --git a/proc/alloc.c b/proc/alloc.c
index 0bc71a5..21185cc 100644
--- a/proc/alloc.c
+++ b/proc/alloc.c
@@ -12,7 +12,6 @@
#include "alloc.h"
-
static void xdefault_error(const char *restrict fmts, ...) __attribute__((format(printf,1,2)));
static void xdefault_error(const char *restrict fmts, ...) {
va_list va;
diff --git a/proc/ksym.c b/proc/ksym.c
index ceddba1..b99a8a6 100644
--- a/proc/ksym.c
+++ b/proc/ksym.c
@@ -275,7 +275,7 @@ open_again:
close(fd);
return;
hell:
- if(buf) free(buf);
+ free(buf);
*bufp = NULL;
*roomp = 0; /* this function will never work again */
total = 0;
@@ -321,9 +321,11 @@ bad_parse:
}
quiet_goodbye:
idx_room = 0;
- if(ksyms_data) free(ksyms_data) , ksyms_data = NULL;
+ free(ksyms_data);
+ ksyms_data = NULL;
ksyms_room = 0;
- if(ksyms_index) free(ksyms_index) , ksyms_index = NULL;
+ free(ksyms_index);
+ ksyms_index = NULL;
ksyms_count = 0;
return 0;
}
@@ -445,7 +447,7 @@ bad_open:
sysmap_room=0;
sysmap_count=0;
- if(sysmap_index) free(sysmap_index);
+ free(sysmap_index);
sysmap_index = NULL;
if(fd>=0) close(fd);
if(sysmap_data) munmap(sysmap_data, sbuf.st_size + 1);
diff --git a/proc/procps.h b/proc/procps.h
index 4c6866e..abbab98 100644
--- a/proc/procps.h
+++ b/proc/procps.h
@@ -71,8 +71,10 @@
#define expected(x,y) (x)
#endif
-#if SHARED==1 && (__GNUC__ > 2 || __GNUC_MINOR__ >= 96)
-#define LABEL_OFFSET
+#ifdef SHARED
+# if SHARED==1 && (__GNUC__ > 2 || __GNUC_MINOR__ >= 96)
+# define LABEL_OFFSET
+# endif
#endif
#define STRINGIFY_ARG(a) #a
diff --git a/proc/slab.c b/proc/slab.c
index ca41bf9..66b0d4b 100644
--- a/proc/slab.c
+++ b/proc/slab.c
@@ -141,7 +141,8 @@ static int parse_slabinfo20(struct slab_info **list, struct slab_stat *stats,
if (entries++ == 0)
*list = curr;
else
- prev->next = curr;
+ if (prev)
+ prev->next = curr;
assigned = sscanf(buffer, "%" STRINGIFY(SLAB_INFO_NAME_LEN)
"s %d %d %d %d %d : tunables %*d %*d %*d : \
@@ -218,7 +219,8 @@ static int parse_slabinfo11(struct slab_info **list, struct slab_stat *stats,
if (entries++ == 0)
*list = curr;
else
- prev->next = curr;
+ if (prev)
+ prev->next = curr;
assigned = sscanf(buffer, "%" STRINGIFY(SLAB_INFO_NAME_LEN)
"s %d %d %d %d %d %d",
diff --git a/ps/stacktrace.c b/ps/stacktrace.c
index c2b4ece..60b89f4 100644
--- a/ps/stacktrace.c
+++ b/ps/stacktrace.c
@@ -128,7 +128,7 @@ void debug(int method, char *prog_name){
char *args[4] = { "gdb", NULL, NULL, NULL };
int x;
- snprintf (buf, 99, "%d", getpid ());
+ snprintf (buf, 16, "%d", getpid ());
args[1] = prog_name;
args[2] = buf;