1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-25 10:04:04 +03:00

journal: fix a few bad memory accesses and leaks

This commit is contained in:
Lennart Poettering 2011-12-30 22:15:58 +01:00
parent 8b18eb674c
commit 783d2675ef
2 changed files with 20 additions and 5 deletions

View File

@ -111,6 +111,8 @@ void journal_rate_limit_free(JournalRateLimit *r) {
while (r->lru)
journal_rate_limit_group_free(r->lru);
free(r);
}
static bool journal_rate_limit_group_expired(JournalRateLimitGroup *g, usec_t ts) {

View File

@ -378,11 +378,22 @@ static char *shortened_cgroup_path(pid_t pid) {
if (streq(init_path, "/"))
init_path[0] = 0;
if (startswith(process_path, init_path))
path = process_path + strlen(init_path);
else
path = process_path;
if (startswith(process_path, init_path)) {
char *p;
p = strdup(process_path + strlen(init_path));
if (!p) {
free(process_path);
free(init_path);
return NULL;
}
path = p;
} else {
path = process_path;
process_path = NULL;
}
free(process_path);
free(init_path);
return path;
@ -544,7 +555,7 @@ static void dispatch_message(Server *s,
struct timeval *tv,
int priority) {
int rl;
char *path, *c;
char *path = NULL, *c;
assert(s);
assert(iovec || n == 0);
@ -1828,6 +1839,8 @@ static void server_done(Server *s) {
if (s->rate_limit)
journal_rate_limit_free(s->rate_limit);
free(s->buffer);
}
int main(int argc, char *argv[]) {