log, conf, tap: Define die() as err() plus exit(), drop cppcheck workarounds
If we define die() as a variadic macro, passing __VA_ARGS__ to err(),
and calling exit() outside err() itself, we can drop the workarounds
introduced in commit 36f0199f6e
("conf, tap: Silence two false
positive invalidFunctionArg from cppcheck").
Suggested-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
fb05a71378
commit
d2df763232
4 changed files with 12 additions and 18 deletions
3
conf.c
3
conf.c
|
@ -1064,9 +1064,6 @@ static void conf_ugid(char *runas, uid_t *uid, gid_t *gid)
|
||||||
if ((fd = open("/proc/self/uid_map", O_RDONLY | O_CLOEXEC)) < 0) {
|
if ((fd = open("/proc/self/uid_map", O_RDONLY | O_CLOEXEC)) < 0) {
|
||||||
die("Can't determine if we're in init namespace: %s",
|
die("Can't determine if we're in init namespace: %s",
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
|
|
||||||
/* Silence cppcheck's invalidFunctionArg for 'fd' in read() */
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (read(fd, buf, BUFSIZ) != sizeof(root_uid_map) ||
|
if (read(fd, buf, BUFSIZ) != sizeof(root_uid_map) ||
|
||||||
|
|
14
log.c
14
log.c
|
@ -46,7 +46,7 @@ int log_trace; /* --trace mode enabled */
|
||||||
|
|
||||||
#define BEFORE_DAEMON (setlogmask(0) == LOG_MASK(LOG_EMERG))
|
#define BEFORE_DAEMON (setlogmask(0) == LOG_MASK(LOG_EMERG))
|
||||||
|
|
||||||
#define logfn(name, level, doexit) \
|
#define logfn(name, level) \
|
||||||
void name(const char *format, ...) { \
|
void name(const char *format, ...) { \
|
||||||
struct timespec tp; \
|
struct timespec tp; \
|
||||||
va_list args; \
|
va_list args; \
|
||||||
|
@ -75,9 +75,6 @@ void name(const char *format, ...) { \
|
||||||
if (format[strlen(format)] != '\n') \
|
if (format[strlen(format)] != '\n') \
|
||||||
fprintf(stderr, "\n"); \
|
fprintf(stderr, "\n"); \
|
||||||
} \
|
} \
|
||||||
\
|
|
||||||
if (doexit) \
|
|
||||||
exit(EXIT_FAILURE); \
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Prefixes for log file messages, indexed by priority */
|
/* Prefixes for log file messages, indexed by priority */
|
||||||
|
@ -90,11 +87,10 @@ const char *logfile_prefix[] = {
|
||||||
" ", /* LOG_DEBUG */
|
" ", /* LOG_DEBUG */
|
||||||
};
|
};
|
||||||
|
|
||||||
logfn(die, LOG_ERR, 1)
|
logfn(err, LOG_ERR)
|
||||||
logfn(err, LOG_ERR, 0)
|
logfn(warn, LOG_WARNING)
|
||||||
logfn(warn, LOG_WARNING, 0)
|
logfn(info, LOG_INFO)
|
||||||
logfn(info, LOG_INFO, 0)
|
logfn(debug,LOG_DEBUG)
|
||||||
logfn(debug,LOG_DEBUG, 0)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* trace_init() - Set log_trace depending on trace (debug) mode
|
* trace_init() - Set log_trace depending on trace (debug) mode
|
||||||
|
|
7
log.h
7
log.h
|
@ -10,12 +10,17 @@
|
||||||
#define LOGFILE_CUT_RATIO 30 /* When full, cut ~30% size */
|
#define LOGFILE_CUT_RATIO 30 /* When full, cut ~30% size */
|
||||||
#define LOGFILE_SIZE_MIN (5UL * MAX(BUFSIZ, PAGE_SIZE))
|
#define LOGFILE_SIZE_MIN (5UL * MAX(BUFSIZ, PAGE_SIZE))
|
||||||
|
|
||||||
void die(const char *format, ...);
|
|
||||||
void err(const char *format, ...);
|
void err(const char *format, ...);
|
||||||
void warn(const char *format, ...);
|
void warn(const char *format, ...);
|
||||||
void info(const char *format, ...);
|
void info(const char *format, ...);
|
||||||
void debug(const char *format, ...);
|
void debug(const char *format, ...);
|
||||||
|
|
||||||
|
#define die(...) \
|
||||||
|
do { \
|
||||||
|
err(__VA_ARGS__); \
|
||||||
|
exit(EXIT_FAILURE); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
extern int log_trace;
|
extern int log_trace;
|
||||||
void trace_init(int enable);
|
void trace_init(int enable);
|
||||||
#define trace(...) \
|
#define trace(...) \
|
||||||
|
|
6
tap.c
6
tap.c
|
@ -1037,13 +1037,9 @@ static void tap_sock_unix_init(struct ctx *c)
|
||||||
snprintf(path, UNIX_PATH_MAX - 1, UNIX_SOCK_PATH, i);
|
snprintf(path, UNIX_PATH_MAX - 1, UNIX_SOCK_PATH, i);
|
||||||
|
|
||||||
ex = socket(AF_UNIX, SOCK_STREAM | SOCK_NONBLOCK, 0);
|
ex = socket(AF_UNIX, SOCK_STREAM | SOCK_NONBLOCK, 0);
|
||||||
if (ex < 0) {
|
if (ex < 0)
|
||||||
die("UNIX domain socket check: %s", strerror(errno));
|
die("UNIX domain socket check: %s", strerror(errno));
|
||||||
|
|
||||||
/* Silence cppcheck's invalidFunctionArg for 'ex' */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = connect(ex, (const struct sockaddr *)&addr, sizeof(addr));
|
ret = connect(ex, (const struct sockaddr *)&addr, sizeof(addr));
|
||||||
if (!ret || (errno != ENOENT && errno != ECONNREFUSED &&
|
if (!ret || (errno != ENOENT && errno != ECONNREFUSED &&
|
||||||
errno != EACCES)) {
|
errno != EACCES)) {
|
||||||
|
|
Loading…
Reference in a new issue