On 12/07/2015 03:59 PM, Jakub Hrozek wrote:
On Fri, Dec 04, 2015 at 05:18:53PM +0100, Pavel Reichl wrote:


On 12/04/2015 03:37 PM, Jakub Hrozek wrote:
On Thu, Dec 03, 2015 at 03:29:22PM +0100, Pavel Reichl wrote:

On 12/03/2015 02:06 PM, Jakub Hrozek wrote:
On Mon, Nov 30, 2015 at 06:45:00PM +0100, Pavel Reichl wrote:


On 11/30/2015 06:02 PM, Jakub Hrozek wrote:

Wouldn't it then be better to see if another same object is already in
the hashtable and free it before replacing?

I agree it would be best. I tried that before and failed because I could not 
decipher out the relation of talloc contexts.

I tried that again. Seems that leaks are gone. Segfaults were not happening 
during my testing.

Code got even messier :-(

I think the code would look nice if it was placed in the else branch of
create_negcache_netgr() :-)

Done, thanks for hint.


I also don't think we need the tmp_ctx change..

I dare to disagree here. With prev. versions of patch I was experiencing
segfaults. IIRC step_context is being allocated on context of the netgroup
that is freed. I also think that it's not a good idea to allocate local data
on context that does not hold any reference to that data. But it might be
matter of personal taste.

What kind of segfaults, what was the backtrace? I think it might be good to
add talloc_zfree() instead of talloc_free() or explicitly NULL the pointer,
that should solve the issue without adding a new context...

Since it's per-domain, I wonder if step_ctx->dctx might be better
candidate than step_ctx either way.


Hello Jakub, I amended the patch as you proposed. You can now experience the 
segfault yourself - just query a non-existing netgroup.
I attached the backtrace as well.

I can investiage and use talloc reporting if you wish. But still using tmp_ctx 
seems as way of the least effort...

I think you are right, the step_ctx hierarchy is tricky, so the
temporary context looks like the easiest solution. Please do one more
change in the patch:

OK, please see attached patch.


 From 0160ee92c4d9a9542abfd3e918686526a52e367d Mon Sep 17 00:00:00 2001
From: Pavel Reichl <prei...@redhat.com>
Date: Fri, 27 Nov 2015 07:53:00 -0500
Subject: [PATCH] NSS: Fix memory leak netgroup

[...]

@@ -461,6 +469,11 @@ static errno_t create_negcache_netgr(struct 
setent_step_ctx *step_ctx)
      }

  done:
+    /* Free netgroup after step_ctx is not needed. */
+    if (netgr_to_be_freed) {
+        talloc_zfree(netgr_to_be_freed);
+    }

Since talloc_free(NULL) is a noop, we should drop the if completely.

OK, done.


While testing the patches I found that sometimes (not always, thought) I
see this valgrind error when a non-existing netgroup is requested:
Mon Dec  7 14:53:15 2015) [sssd[nss]] [accept_fd_handler] (0x0400): Client 
connected!
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [sss_cmd_get_version] (0x0200): Received 
client version [1].
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [sss_cmd_get_version] (0x0200): Offered 
version [1].
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [sss_parse_name_for_domains] (0x0200): 
name 'ngr' matched without domain, user is ngr
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [setnetgrent_send] (0x0100): Requesting info 
for netgroup [ngr] from [<ALL>]
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [lookup_netgr_step] (0x0100): Requesting 
info for [n...@ipa.test]
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [lookup_netgr_step] (0x0040): No results 
for netgroup ngr (domain ipa.test)
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [get_dp_name_and_id] (0x0400): Not a 
LOCAL view, continuing with provided values.
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [sss_dp_issue_request] (0x0400): Issuing 
request for [0x428c3b:4:n...@ipa.test]
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [sss_dp_get_account_msg] (0x0400): 
Creating request for [ipa.test][0x1004][FAST BE_REQ_NETGROUP][1][name=ngr]
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [sss_dp_internal_get_send] (0x0400): 
Entering request [0x428c3b:4:n...@ipa.test]
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [sss_dp_get_reply] (0x1000): Got reply 
from Data Provider - DP error code: 0 errno: 0 error message: Success
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [lookup_netgr_step] (0x0100): Requesting 
info for [n...@ipa.test]
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [lookup_netgr_step] (0x0400): Returning 
info for netgroup [n...@ipa.test]
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [sss_dp_req_destructor] (0x0400): 
Deleting request: [0x428c3b:4:n...@ipa.test]
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [nss_cmd_getnetgrent] (0x0100): 
Requesting netgroup data
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [nss_cmd_getnetgrent] (0x0400): 
Returning results for [ngr]
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [nss_cmd_getnetgrent_process] (0x0200): 
No entries found
(Mon Dec  7 14:53:15 2015) [sssd[nss]] [client_recv] (0x0200): Client 
disconnected!
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [accept_fd_handler] (0x0400): Client 
connected!
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [sss_cmd_get_version] (0x0200): Received 
client version [1].
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [sss_cmd_get_version] (0x0200): Offered 
version [1].
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [sss_parse_name_for_domains] (0x0200): 
name 'ngr2' matched without domain, user is ngr2
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [setnetgrent_send] (0x0100): Requesting info 
for netgroup [ngr2] from [<ALL>]
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [lookup_netgr_step] (0x0100): Requesting 
info for [n...@ipa.test]
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [lookup_netgr_step] (0x0040): No results 
for netgroup ngr2 (domain ipa.test)
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [get_dp_name_and_id] (0x0400): Not a 
LOCAL view, continuing with provided values.
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [sss_dp_issue_request] (0x0400): Issuing 
request for [0x428c3b:4:n...@ipa.test]
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [sss_dp_get_account_msg] (0x0400): 
Creating request for [ipa.test][0x1004][FAST BE_REQ_NETGROUP][1][name=ngr2]
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [sss_dp_internal_get_send] (0x0400): 
Entering request [0x428c3b:4:n...@ipa.test]
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [sss_dp_get_reply] (0x1000): Got reply 
from Data Provider - DP error code: 0 errno: 0 error message: Success
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [lookup_netgr_step] (0x0100): Requesting 
info for [n...@ipa.test]
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [lookup_netgr_step] (0x0080): No 
matching domain found for [ngr2], fail!
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [netgr_hash_remove] (0x1000): netgroup 
[ngr2] was already removed
==6830== Invalid read of size 8
==6830==    at 0x42469E: setent_notify (responder_cmd.c:218)
==6830==    by 0x406ED2: nss_setent_notify_error (nsssrv_cmd.c:94)
==6830==    by 0x418C0D: lookup_netgr_dp_callback (nsssrv_netgroup.c:681)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==    by 0x42969D: sss_dp_internal_get_done (responder_dp.c:802)
==6830==    by 0x570C9E1: ??? (in /usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5710400: dbus_connection_dispatch (in 
/usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5080E59: sbus_dispatch (sssd_dbus_connection.c:96)
==6830==    by 0x87D81DC: tevent_common_loop_timer_delay (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D9209: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D7906: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D411C: _tevent_loop_once (in /usr/lib64/libtevent.so.0.9.25)
==6830==  Address 0xbcd03e0 is 112 bytes inside a block of size 160 free'd
==6830==    at 0x4C29D6A: free (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E2262: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x4182C9: create_negcache_netgr (nsssrv_netgroup.c:472)
==6830==    by 0x418A08: lookup_netgr_step (nsssrv_netgroup.c:632)
==6830==    by 0x418BD7: lookup_netgr_dp_callback (nsssrv_netgroup.c:672)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==    by 0x42969D: sss_dp_internal_get_done (responder_dp.c:802)
==6830==    by 0x570C9E1: ??? (in /usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5710400: dbus_connection_dispatch (in 
/usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5080E59: sbus_dispatch (sssd_dbus_connection.c:96)
==6830==    by 0x87D81DC: tevent_common_loop_timer_delay (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D9209: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==  Block was alloc'd at
==6830==    at 0x4C28C50: malloc (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E4965: _talloc_zero (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x417D3C: setnetgrent_retry (nsssrv_netgroup.c:320)
==6830==    by 0x417B42: setnetgrent_send (nsssrv_netgroup.c:248)
==6830==    by 0x41764D: nss_cmd_setnetgrent (nsssrv_netgroup.c:129)
==6830==    by 0x4243C9: sss_cmd_execute (responder_cmd.c:161)
==6830==    by 0x42527A: client_cmd_execute (responder_common.c:249)
==6830==    by 0x42547C: client_recv (responder_common.c:283)
==6830==    by 0x4256B9: client_fd_handler (responder_common.c:335)
==6830==    by 0x87D93C2: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D7906: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D411C: _tevent_loop_once (in /usr/lib64/libtevent.so.0.9.25)
==6830== Invalid read of size 8
==6830==    at 0x42442B: setent_remove_ref (responder_cmd.c:188)
==6830==    by 0x89E8492: ??? (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x89E210A: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x87D532F: tevent_req_received (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D5368: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x89E2707: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x418CE9: nss_cmd_setnetgrent_done (nsssrv_netgroup.c:722)
==6830==    by 0x87D51C1: _tevent_req_error (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x42462E: setent_notify (responder_cmd.c:225)
==6830==    by 0x406ED2: nss_setent_notify_error (nsssrv_cmd.c:94)
==6830==    by 0x418C0D: lookup_netgr_dp_callback (nsssrv_netgroup.c:681)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==  Address 0xbcd03e0 is 112 bytes inside a block of size 160 free'd
==6830==    at 0x4C29D6A: free (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E2262: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x4182C9: create_negcache_netgr (nsssrv_netgroup.c:472)
==6830==    by 0x418A08: lookup_netgr_step (nsssrv_netgroup.c:632)
==6830==    by 0x418BD7: lookup_netgr_dp_callback (nsssrv_netgroup.c:672)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==    by 0x42969D: sss_dp_internal_get_done (responder_dp.c:802)
==6830==    by 0x570C9E1: ??? (in /usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5710400: dbus_connection_dispatch (in 
/usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5080E59: sbus_dispatch (sssd_dbus_connection.c:96)
==6830==    by 0x87D81DC: tevent_common_loop_timer_delay (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D9209: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==  Block was alloc'd at
==6830==    at 0x4C28C50: malloc (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E4965: _talloc_zero (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x417D3C: setnetgrent_retry (nsssrv_netgroup.c:320)
==6830==    by 0x417B42: setnetgrent_send (nsssrv_netgroup.c:248)
==6830==    by 0x41764D: nss_cmd_setnetgrent (nsssrv_netgroup.c:129)
==6830==    by 0x4243C9: sss_cmd_execute (responder_cmd.c:161)
==6830==    by 0x42527A: client_cmd_execute (responder_common.c:249)
==6830==    by 0x42547C: client_recv (responder_common.c:283)
==6830==    by 0x4256B9: client_fd_handler (responder_common.c:335)
==6830==    by 0x87D93C2: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D7906: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D411C: _tevent_loop_once (in /usr/lib64/libtevent.so.0.9.25)
==6830== Invalid write of size 8
==6830==    at 0x424444: setent_remove_ref (responder_cmd.c:188)
==6830==    by 0x89E8492: ??? (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x89E210A: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x87D532F: tevent_req_received (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D5368: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x89E2707: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x418CE9: nss_cmd_setnetgrent_done (nsssrv_netgroup.c:722)
==6830==    by 0x87D51C1: _tevent_req_error (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x42462E: setent_notify (responder_cmd.c:225)
==6830==    by 0x406ED2: nss_setent_notify_error (nsssrv_cmd.c:94)
==6830==    by 0x418C0D: lookup_netgr_dp_callback (nsssrv_netgroup.c:681)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==  Address 0xbcd03e0 is 112 bytes inside a block of size 160 free'd
==6830==    at 0x4C29D6A: free (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E2262: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x4182C9: create_negcache_netgr (nsssrv_netgroup.c:472)
==6830==    by 0x418A08: lookup_netgr_step (nsssrv_netgroup.c:632)
==6830==    by 0x418BD7: lookup_netgr_dp_callback (nsssrv_netgroup.c:672)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==    by 0x42969D: sss_dp_internal_get_done (responder_dp.c:802)
==6830==    by 0x570C9E1: ??? (in /usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5710400: dbus_connection_dispatch (in 
/usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5080E59: sbus_dispatch (sssd_dbus_connection.c:96)
==6830==    by 0x87D81DC: tevent_common_loop_timer_delay (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D9209: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==  Block was alloc'd at
==6830==    at 0x4C28C50: malloc (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E4965: _talloc_zero (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x417D3C: setnetgrent_retry (nsssrv_netgroup.c:320)
==6830==    by 0x417B42: setnetgrent_send (nsssrv_netgroup.c:248)
==6830==    by 0x41764D: nss_cmd_setnetgrent (nsssrv_netgroup.c:129)
==6830==    by 0x4243C9: sss_cmd_execute (responder_cmd.c:161)
==6830==    by 0x42527A: client_cmd_execute (responder_common.c:249)
==6830==    by 0x42547C: client_recv (responder_common.c:283)
==6830==    by 0x4256B9: client_fd_handler (responder_common.c:335)
==6830==    by 0x87D93C2: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D7906: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D411C: _tevent_loop_once (in /usr/lib64/libtevent.so.0.9.25)
==6830==
==6830== Invalid read of size 8
==6830==    at 0x42444F: setent_remove_ref (responder_cmd.c:188)
==6830==    by 0x89E8492: ??? (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x89E210A: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x87D532F: tevent_req_received (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D5368: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x89E2707: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x418CE9: nss_cmd_setnetgrent_done (nsssrv_netgroup.c:722)
==6830==    by 0x87D51C1: _tevent_req_error (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x42462E: setent_notify (responder_cmd.c:225)
==6830==    by 0x406ED2: nss_setent_notify_error (nsssrv_cmd.c:94)
==6830==    by 0x418C0D: lookup_netgr_dp_callback (nsssrv_netgroup.c:681)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==  Address 0xbcd03e0 is 112 bytes inside a block of size 160 free'd
==6830==    at 0x4C29D6A: free (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E2262: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x4182C9: create_negcache_netgr (nsssrv_netgroup.c:472)
==6830==    by 0x418A08: lookup_netgr_step (nsssrv_netgroup.c:632)
==6830==    by 0x418BD7: lookup_netgr_dp_callback (nsssrv_netgroup.c:672)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==    by 0x42969D: sss_dp_internal_get_done (responder_dp.c:802)
==6830==    by 0x570C9E1: ??? (in /usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5710400: dbus_connection_dispatch (in 
/usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5080E59: sbus_dispatch (sssd_dbus_connection.c:96)
==6830==    by 0x87D81DC: tevent_common_loop_timer_delay (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D9209: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==  Block was alloc'd at
==6830==    at 0x4C28C50: malloc (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E4965: _talloc_zero (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x417D3C: setnetgrent_retry (nsssrv_netgroup.c:320)
==6830==    by 0x417B42: setnetgrent_send (nsssrv_netgroup.c:248)
==6830==    by 0x41764D: nss_cmd_setnetgrent (nsssrv_netgroup.c:129)
==6830==    by 0x4243C9: sss_cmd_execute (responder_cmd.c:161)
==6830==    by 0x42527A: client_cmd_execute (responder_common.c:249)
==6830==    by 0x42547C: client_recv (responder_common.c:283)
==6830==    by 0x4256B9: client_fd_handler (responder_common.c:335)
==6830==    by 0x87D93C2: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D7906: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D411C: _tevent_loop_once (in /usr/lib64/libtevent.so.0.9.25)
==6830==
==6830== Invalid read of size 8
==6830==    at 0x4244B1: setent_remove_ref (responder_cmd.c:188)
==6830==    by 0x89E8492: ??? (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x89E210A: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x87D532F: tevent_req_received (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D5368: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x89E2707: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x418CE9: nss_cmd_setnetgrent_done (nsssrv_netgroup.c:722)
==6830==    by 0x87D51C1: _tevent_req_error (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x42462E: setent_notify (responder_cmd.c:225)
==6830==    by 0x406ED2: nss_setent_notify_error (nsssrv_cmd.c:94)
==6830==    by 0x418C0D: lookup_netgr_dp_callback (nsssrv_netgroup.c:681)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==  Address 0xbcd03e0 is 112 bytes inside a block of size 160 free'd
==6830==    at 0x4C29D6A: free (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E2262: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x4182C9: create_negcache_netgr (nsssrv_netgroup.c:472)
==6830==    by 0x418A08: lookup_netgr_step (nsssrv_netgroup.c:632)
==6830==    by 0x418BD7: lookup_netgr_dp_callback (nsssrv_netgroup.c:672)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==    by 0x42969D: sss_dp_internal_get_done (responder_dp.c:802)
==6830==    by 0x570C9E1: ??? (in /usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5710400: dbus_connection_dispatch (in 
/usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5080E59: sbus_dispatch (sssd_dbus_connection.c:96)
==6830==    by 0x87D81DC: tevent_common_loop_timer_delay (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D9209: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==  Block was alloc'd at
==6830==    at 0x4C28C50: malloc (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E4965: _talloc_zero (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x417D3C: setnetgrent_retry (nsssrv_netgroup.c:320)
==6830==    by 0x417B42: setnetgrent_send (nsssrv_netgroup.c:248)
==6830==    by 0x41764D: nss_cmd_setnetgrent (nsssrv_netgroup.c:129)
==6830==    by 0x4243C9: sss_cmd_execute (responder_cmd.c:161)
==6830==    by 0x42527A: client_cmd_execute (responder_common.c:249)
==6830==    by 0x42547C: client_recv (responder_common.c:283)
==6830==    by 0x4256B9: client_fd_handler (responder_common.c:335)
==6830==    by 0x87D93C2: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D7906: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D411C: _tevent_loop_once (in /usr/lib64/libtevent.so.0.9.25)
==6830== Invalid read of size 8
==6830==    at 0x424633: setent_notify (responder_cmd.c:228)
==6830==    by 0x406ED2: nss_setent_notify_error (nsssrv_cmd.c:94)
==6830==    by 0x418C0D: lookup_netgr_dp_callback (nsssrv_netgroup.c:681)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==    by 0x42969D: sss_dp_internal_get_done (responder_dp.c:802)
==6830==    by 0x570C9E1: ??? (in /usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5710400: dbus_connection_dispatch (in 
/usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5080E59: sbus_dispatch (sssd_dbus_connection.c:96)
==6830==    by 0x87D81DC: tevent_common_loop_timer_delay (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D9209: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D7906: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D411C: _tevent_loop_once (in /usr/lib64/libtevent.so.0.9.25)
==6830==  Address 0xbcd03e0 is 112 bytes inside a block of size 160 free'd
==6830==    at 0x4C29D6A: free (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E2262: _talloc_free (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x4182C9: create_negcache_netgr (nsssrv_netgroup.c:472)
==6830==    by 0x418A08: lookup_netgr_step (nsssrv_netgroup.c:632)
==6830==    by 0x418BD7: lookup_netgr_dp_callback (nsssrv_netgroup.c:672)
==6830==    by 0x4094D7: nsssrv_dp_send_acct_req_done (nsssrv_cmd.c:885)
==6830==    by 0x42969D: sss_dp_internal_get_done (responder_dp.c:802)
==6830==    by 0x570C9E1: ??? (in /usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5710400: dbus_connection_dispatch (in 
/usr/lib64/libdbus-1.so.3.14.6)
==6830==    by 0x5080E59: sbus_dispatch (sssd_dbus_connection.c:96)
==6830==    by 0x87D81DC: tevent_common_loop_timer_delay (in 
/usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D9209: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==  Block was alloc'd at
==6830==    at 0x4C28C50: malloc (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6830==    by 0x89E4965: _talloc_zero (in /usr/lib64/libtalloc.so.2.1.3)
==6830==    by 0x417D3C: setnetgrent_retry (nsssrv_netgroup.c:320)
==6830==    by 0x417B42: setnetgrent_send (nsssrv_netgroup.c:248)
==6830==    by 0x41764D: nss_cmd_setnetgrent (nsssrv_netgroup.c:129)
==6830==    by 0x4243C9: sss_cmd_execute (responder_cmd.c:161)
==6830==    by 0x42527A: client_cmd_execute (responder_common.c:249)
==6830==    by 0x42547C: client_recv (responder_common.c:283)
==6830==    by 0x4256B9: client_fd_handler (responder_common.c:335)
==6830==    by 0x87D93C2: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D7906: ??? (in /usr/lib64/libtevent.so.0.9.25)
==6830==    by 0x87D411C: _tevent_loop_once (in /usr/lib64/libtevent.so.0.9.25)
==6830==
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [sss_dp_req_destructor] (0x0400): 
Deleting request: [0x428c3b:4:ng
(Mon Dec  7 14:53:20 2015) [sssd[nss]] [client_recv] (0x0200): Client 
disconnected!
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/admin/lists/sssd-devel@lists.fedorahosted.org

Nice :-(.

Thanks for noticing. Shall we return to the first iteration of the patch?
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/admin/lists/sssd-devel@lists.fedorahosted.org

Reply via email to