Files
Documentation
contrib
include
lib
misc
po
proc
COPYING
Makefile.am
alloc.c
alloc.h
devname.c
devname.h
escape.c
escape.h
ksym.c
libprocps.pc.in
libprocps.sym
procps.h
pwcache.c
pwcache.h
readproc.c
readproc.h
sig.c
sig.h
slab.c
slab.h
sysinfo.c
sysinfo.h
version.c
version.h
wchan.h
whattime.c
whattime.h
ps
testsuite
top
.gitignore
AUTHORS
COPYING
COPYING.LIB
ChangeLog
Makefile.am
NEWS
README
autogen.sh
configure.ac
free.1
free.c
kill.1
pgrep.1
pgrep.c
pkill.1
pmap.1
pmap.c
pwdx.1
pwdx.c
skill.1
skill.c
slabtop.1
slabtop.c
snice.1
sysctl.8
sysctl.c
sysctl.conf
sysctl.conf.5
tload.1
tload.c
uptime.1
uptime.c
vmstat.8
vmstat.c
w.1
w.c
watch.1
watch.c
procps/proc/alloc.c
Sami Kerola 9057b18a32 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>
2011-12-20 17:30:50 +01:00

80 lines
1.8 KiB
C

// Copyright (C) 1992-1998 by Michael K. Johnson, johnsonm@redhat.com
// Copyright 2002 Albert Cahalan
//
// This file is placed under the conditions of the GNU Library
// General Public License, version 2, or any later version.
// See file COPYING for information on distribution conditions.
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#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;
va_start(va, fmts);
fprintf(stderr, fmts, va);
va_end(va);
}
message_fn xalloc_err_handler = xdefault_error;
void *xcalloc(unsigned int size) {
void * p;
if (size == 0)
++size;
p = calloc(1, size);
if (!p) {
xalloc_err_handler("%s failed to allocate %u bytes of memory", __func__, size);
exit(EXIT_FAILURE);
}
return p;
}
void *xmalloc(unsigned int size) {
void *p;
if (size == 0)
++size;
p = malloc(size);
if (!p) {
xalloc_err_handler("%s failed to allocate %u bytes of memory", __func__, size);
exit(EXIT_FAILURE);
}
return(p);
}
void *xrealloc(void *oldp, unsigned int size) {
void *p;
if (size == 0)
++size;
p = realloc(oldp, size);
if (!p) {
xalloc_err_handler("%s failed to allocate %u bytes of memory", __func__, size);
exit(EXIT_FAILURE);
}
return(p);
}
char *xstrdup(const char *str) {
char *p = NULL;
if (str) {
unsigned int size = strlen(str) + 1;
p = malloc(size);
if (!p) {
xalloc_err_handler("%s failed to allocate %u bytes of memory", __func__, size);
exit(EXIT_FAILURE);
}
strcpy(p, str);
}
return(p);
}