I was exercising sssd with valgrind when looking for #1020945 and found this leak.
On Mon, 2013-10-21 at 11:01 +0200, Jakub Hrozek wrote:
I was exercising sssd with valgrind when looking for #1020945 and found this leak.
plain text document attachment (0001-UTIL-Free-log-message-when-using-journald.patch)
From 3bde2833eca1fc280214da03f067e3df63040899 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek jhrozek@redhat.com Date: Sun, 20 Oct 2013 16:52:06 +0200 Subject: [PATCH 2/3] UTIL: Free log message when using journald
src/util/sss_log.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/src/util/sss_log.c b/src/util/sss_log.c index 5be9e7f2bc1486d83393d2d105c1a73322d7f6f1..b6b922785b03f8d9673aebdeb33a83c3f6b14076 100644 --- a/src/util/sss_log.c +++ b/src/util/sss_log.c @@ -88,6 +88,8 @@ void sss_log(int priority, const char *format, ...) "SYSLOG_FACILITY=%i", LOG_FAC(LOG_DAEMON), "SYSLOG_IDENTIFIER=%s", debug_prg_name, NULL);
- free(message);
}
#else /* WITH_JOURNALD */
Is there any reason why we are not using talloc_vasrpintf() here and passing in a memcontext ?
I think I would rather fix this problem that way.
Simo.
On Mon, Oct 21, 2013 at 10:35:34AM -0400, Simo Sorce wrote:
On Mon, 2013-10-21 at 11:01 +0200, Jakub Hrozek wrote:
I was exercising sssd with valgrind when looking for #1020945 and found this leak.
plain text document attachment (0001-UTIL-Free-log-message-when-using-journald.patch)
From 3bde2833eca1fc280214da03f067e3df63040899 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek jhrozek@redhat.com Date: Sun, 20 Oct 2013 16:52:06 +0200 Subject: [PATCH 2/3] UTIL: Free log message when using journald
src/util/sss_log.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/src/util/sss_log.c b/src/util/sss_log.c index 5be9e7f2bc1486d83393d2d105c1a73322d7f6f1..b6b922785b03f8d9673aebdeb33a83c3f6b14076 100644 --- a/src/util/sss_log.c +++ b/src/util/sss_log.c @@ -88,6 +88,8 @@ void sss_log(int priority, const char *format, ...) "SYSLOG_FACILITY=%i", LOG_FAC(LOG_DAEMON), "SYSLOG_IDENTIFIER=%s", debug_prg_name, NULL);
- free(message);
}
#else /* WITH_JOURNALD */
Is there any reason why we are not using talloc_vasrpintf() here and passing in a memcontext ?
I think I would rather fix this problem that way.
Simo.
Mostly because I copied the old syslog-based sss_log() function.
But I don't think the mem_ctx is needed, the function doesn't allocate anything for its consumer, nor does it operate on any predictable structure (like state or tevent_req with tevent contexts), so I would prefer not to add a memory context to its signature.
On Mon, Oct 21, 2013 at 05:32:26PM +0200, Jakub Hrozek wrote:
On Mon, Oct 21, 2013 at 10:35:34AM -0400, Simo Sorce wrote:
On Mon, 2013-10-21 at 11:01 +0200, Jakub Hrozek wrote:
I was exercising sssd with valgrind when looking for #1020945 and found this leak.
plain text document attachment (0001-UTIL-Free-log-message-when-using-journald.patch)
From 3bde2833eca1fc280214da03f067e3df63040899 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek jhrozek@redhat.com Date: Sun, 20 Oct 2013 16:52:06 +0200 Subject: [PATCH 2/3] UTIL: Free log message when using journald
src/util/sss_log.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/src/util/sss_log.c b/src/util/sss_log.c index 5be9e7f2bc1486d83393d2d105c1a73322d7f6f1..b6b922785b03f8d9673aebdeb33a83c3f6b14076 100644 --- a/src/util/sss_log.c +++ b/src/util/sss_log.c @@ -88,6 +88,8 @@ void sss_log(int priority, const char *format, ...) "SYSLOG_FACILITY=%i", LOG_FAC(LOG_DAEMON), "SYSLOG_IDENTIFIER=%s", debug_prg_name, NULL);
- free(message);
}
#else /* WITH_JOURNALD */
Is there any reason why we are not using talloc_vasrpintf() here and passing in a memcontext ?
I think I would rather fix this problem that way.
Simo.
Mostly because I copied the old syslog-based sss_log() function.
But I don't think the mem_ctx is needed, the function doesn't allocate anything for its consumer, nor does it operate on any predictable structure (like state or tevent_req with tevent contexts), so I would prefer not to add a memory context to its signature.
OK to push the patch as-is ?
On 11/05/2013 12:00 PM, Jakub Hrozek wrote:
On Mon, Oct 21, 2013 at 05:32:26PM +0200, Jakub Hrozek wrote:
On Mon, Oct 21, 2013 at 10:35:34AM -0400, Simo Sorce wrote:
On Mon, 2013-10-21 at 11:01 +0200, Jakub Hrozek wrote:
I was exercising sssd with valgrind when looking for #1020945 and found this leak.
plain text document attachment (0001-UTIL-Free-log-message-when-using-journald.patch)
From 3bde2833eca1fc280214da03f067e3df63040899 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek jhrozek@redhat.com Date: Sun, 20 Oct 2013 16:52:06 +0200 Subject: [PATCH 2/3] UTIL: Free log message when using journald
src/util/sss_log.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/src/util/sss_log.c b/src/util/sss_log.c index 5be9e7f2bc1486d83393d2d105c1a73322d7f6f1..b6b922785b03f8d9673aebdeb33a83c3f6b14076 100644 --- a/src/util/sss_log.c +++ b/src/util/sss_log.c @@ -88,6 +88,8 @@ void sss_log(int priority, const char *format, ...) "SYSLOG_FACILITY=%i", LOG_FAC(LOG_DAEMON), "SYSLOG_IDENTIFIER=%s", debug_prg_name, NULL);
free(message); }
#else /* WITH_JOURNALD */
Is there any reason why we are not using talloc_vasrpintf() here and passing in a memcontext ?
I think I would rather fix this problem that way.
Simo.
Mostly because I copied the old syslog-based sss_log() function.
But I don't think the mem_ctx is needed, the function doesn't allocate anything for its consumer, nor does it operate on any predictable structure (like state or tevent_req with tevent contexts), so I would prefer not to add a memory context to its signature.
OK to push the patch as-is ?
Yes by me.
On Tue, Nov 05, 2013 at 12:15:35PM +0100, Pavel Březina wrote:
On 11/05/2013 12:00 PM, Jakub Hrozek wrote:
On Mon, Oct 21, 2013 at 05:32:26PM +0200, Jakub Hrozek wrote:
On Mon, Oct 21, 2013 at 10:35:34AM -0400, Simo Sorce wrote:
On Mon, 2013-10-21 at 11:01 +0200, Jakub Hrozek wrote:
I was exercising sssd with valgrind when looking for #1020945 and found this leak.
plain text document attachment (0001-UTIL-Free-log-message-when-using-journald.patch)
From 3bde2833eca1fc280214da03f067e3df63040899 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek jhrozek@redhat.com Date: Sun, 20 Oct 2013 16:52:06 +0200 Subject: [PATCH 2/3] UTIL: Free log message when using journald
src/util/sss_log.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/src/util/sss_log.c b/src/util/sss_log.c index 5be9e7f2bc1486d83393d2d105c1a73322d7f6f1..b6b922785b03f8d9673aebdeb33a83c3f6b14076 100644 --- a/src/util/sss_log.c +++ b/src/util/sss_log.c @@ -88,6 +88,8 @@ void sss_log(int priority, const char *format, ...) "SYSLOG_FACILITY=%i", LOG_FAC(LOG_DAEMON), "SYSLOG_IDENTIFIER=%s", debug_prg_name, NULL);
- free(message);
}
#else /* WITH_JOURNALD */
Is there any reason why we are not using talloc_vasrpintf() here and passing in a memcontext ?
I think I would rather fix this problem that way.
Simo.
Mostly because I copied the old syslog-based sss_log() function.
But I don't think the mem_ctx is needed, the function doesn't allocate anything for its consumer, nor does it operate on any predictable structure (like state or tevent_req with tevent contexts), so I would prefer not to add a memory context to its signature.
OK to push the patch as-is ?
Yes by me.
Pushed to master.
sssd-devel@lists.fedorahosted.org