You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
3.8 KiB
71 lines
3.8 KiB
From 266eacb3e5a46caba3a56485a9ba54ad8027ff61 Mon Sep 17 00:00:00 2001 |
|
From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= <crrodriguez@opensuse.org> |
|
Date: Fri, 15 May 2015 13:26:18 -0300 |
|
Subject: [PATCH] timedate: fix memory leak in timedated |
|
|
|
$ /usr/lib/systemd/systemd-timedated (wait until auto-exit) |
|
|
|
================================================================= |
|
==396==ERROR: LeakSanitizer: detected memory leaks |
|
|
|
Direct leak of 928 byte(s) in 1 object(s) allocated from: |
|
#0 0x7f782f788db1 in __interceptor_calloc (/usr/lib64/libasan.so.2+0x96db1) |
|
#1 0x562a83ae60cf in bus_message_from_header src/libsystemd/sd-bus/bus-message.c:480 |
|
#2 0x562a83ae6f5a in bus_message_from_malloc src/libsystemd/sd-bus/bus-message.c:576 |
|
#3 0x562a83ad3cad in bus_socket_make_message src/libsystemd/sd-bus/bus-socket.c:915 |
|
#4 0x562a83ad4cfc in bus_socket_read_message src/libsystemd/sd-bus/bus-socket.c:1051 |
|
#5 0x562a83ab733f in bus_read_message src/libsystemd/sd-bus/sd-bus.c:1647 |
|
#6 0x562a83ab98ea in sd_bus_call src/libsystemd/sd-bus/sd-bus.c:2038 |
|
#7 0x562a83b1f46d in sd_bus_call_method src/libsystemd/sd-bus/bus-convenience.c:94 |
|
#8 0x562a83aab3e1 in context_read_ntp src/timedate/timedated.c:192 |
|
#9 0x562a83aae1af in main src/timedate/timedated.c:730 |
|
#10 0x7f782eb238c4 in __libc_start_main (/lib64/libc.so.6+0x208c4) |
|
|
|
Indirect leak of 77 byte(s) in 1 object(s) allocated from: |
|
#0 0x7f782f788f6a in realloc (/usr/lib64/libasan.so.2+0x96f6a) |
|
#1 0x562a83ad418a in bus_socket_read_message src/libsystemd/sd-bus/bus-socket.c:963 |
|
#2 0x562a83ab733f in bus_read_message src/libsystemd/sd-bus/sd-bus.c:1647 |
|
#3 0x562a83ab98ea in sd_bus_call src/libsystemd/sd-bus/sd-bus.c:2038 |
|
#4 0x562a83b1f46d in sd_bus_call_method src/libsystemd/sd-bus/bus-convenience.c:94 |
|
#5 0x562a83aab3e1 in context_read_ntp src/timedate/timedated.c:192 |
|
#6 0x562a83aae1af in main src/timedate/timedated.c:730 |
|
#7 0x7f782eb238c4 in __libc_start_main (/lib64/libc.so.6+0x208c4) |
|
|
|
Indirect leak of 2 byte(s) in 1 object(s) allocated from: |
|
#0 0x7f782f75493f in strdup (/usr/lib64/libasan.so.2+0x6293f) |
|
#1 0x562a83b0229b in bus_message_parse_fields src/libsystemd/sd-bus/bus-message.c:5382 |
|
#2 0x562a83ae7290 in bus_message_from_malloc src/libsystemd/sd-bus/bus-message.c:601 |
|
#3 0x562a83ad3cad in bus_socket_make_message src/libsystemd/sd-bus/bus-socket.c:915 |
|
#4 0x562a83ad4cfc in bus_socket_read_message src/libsystemd/sd-bus/bus-socket.c:1051 |
|
#5 0x562a83ab733f in bus_read_message src/libsystemd/sd-bus/sd-bus.c:1647 |
|
#6 0x562a83ab98ea in sd_bus_call src/libsystemd/sd-bus/sd-bus.c:2038 |
|
#7 0x562a83b1f46d in sd_bus_call_method src/libsystemd/sd-bus/bus-convenience.c:94 |
|
#8 0x562a83aab3e1 in context_read_ntp src/timedate/timedated.c:192 |
|
#9 0x562a83aae1af in main src/timedate/timedated.c:730 |
|
#10 0x7f782eb238c4 in __libc_start_main (/lib64/libc.so.6+0x208c4) |
|
|
|
SUMMARY: AddressSanitizer: 1007 byte(s) leaked in 3 allocation(s). |
|
|
|
This is due to missing _cleanup_bus_message_unref_ in context_read_ntp() |
|
|
|
(cherry picked from commit 6b71bab08dc6c92156263daba0e969313eed1323) |
|
|
|
Cherry-picked from: 6b71bab |
|
Resolves: #1222517 |
|
--- |
|
src/timedate/timedated.c | 2 +- |
|
1 file changed, 1 insertion(+), 1 deletion(-) |
|
|
|
diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c |
|
index f87514936..09d0dbabc 100644 |
|
--- a/src/timedate/timedated.c |
|
+++ b/src/timedate/timedated.c |
|
@@ -245,7 +245,7 @@ static int context_read_ntp(Context *c, sd_bus *bus) { |
|
l = get_ntp_services(); |
|
STRV_FOREACH(i, l) { |
|
_cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; |
|
- sd_bus_message *reply = NULL; |
|
+ _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; |
|
const char *s; |
|
|
|
r = sd_bus_call_method(
|
|
|