Commit e985665d authored by Zbigniew Jędrzejewski-Szmek's avatar Zbigniew Jędrzejewski-Szmek
Browse files

Add _cleanup_pclose_ and fix mismatching pipe close opened by popen()


Based-on-patch-by: default avatarThomas Jarosch <thomas.jarosch@intra2net.com>

cppcheck reported:
[src/bootchart/svg.c:791]: (error) Mismatching allocation and deallocation: f
parent 314b4b0a
......@@ -3084,6 +3084,9 @@ systemd_bootchart_SOURCES = \
src/bootchart/log.c \
src/bootchart/svg.c
systemd_bootchart_LDADD = \
libsystemd-shared.la
MANPAGES += \
man/systemd-bootchart.1 \
man/bootchart.conf.5
......
......@@ -22,6 +22,8 @@
#include <sys/utsname.h>
#include "bootchart.h"
#include "util.h"
#include "macro.h"
#define time_to_graph(t) ((t) * scale_x)
......@@ -702,7 +704,7 @@ static int ps_filter(struct ps_struct *ps)
static void svg_do_initcall(int count_only)
{
FILE *f;
FILE _cleanup_pclose_ *f = NULL;
double t;
char func[256];
int ret;
......@@ -787,8 +789,6 @@ static void svg_do_initcall(int count_only)
kcount++;
}
fclose(f);
}
......
......@@ -196,6 +196,7 @@ static inline size_t IOVEC_INCREMENT(struct iovec *i, unsigned n, size_t k) {
#define _cleanup_free_ __attribute__((cleanup(freep)))
#define _cleanup_fclose_ __attribute__((cleanup(fclosep)))
#define _cleanup_pclose_ __attribute__((cleanup(pclosep)))
#define _cleanup_close_ __attribute__((cleanup(closep)))
#define _cleanup_closedir_ __attribute__((cleanup(closedirp)))
#define _cleanup_umask_ __attribute__((cleanup(umaskp)))
......
......@@ -5553,6 +5553,11 @@ void fclosep(FILE **f) {
fclose(*f);
}
void pclosep(FILE **f) {
if (*f)
pclose(*f);
}
void closep(int *fd) {
if (*fd >= 0)
close_nointr_nofail(*fd);
......
......@@ -522,6 +522,7 @@ int get_home_dir(char **ret);
void freep(void *p);
void fclosep(FILE **f);
void pclosep(FILE **f);
void closep(int *fd);
void closedirp(DIR **d);
void umaskp(mode_t *u);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment