Re: [PATCH] fix unregister/callback race in conn.c
"Alexander Malysh" <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, because dict_get(conn_pool, key) may not be NULL it's just impossible if no races there. Am 26.10.2006, 07:53 Uhr, schrieb Mi Reflejo <[email protected]>: > Umh. > Why this?: > > - if (list != NULL && gwlist_delete_equal(list, conn) > 0) { > + if (gwlist_delete_equal(list, conn) > 0) { > > dict_get couldn't return null value from conn_pool and key? > > M > > On 10/25/06, Alexander Malysh <[email protected]> wrote: >> Hi All, >> >> attached patch fixes race condition in unregister/callback usage/destroy >> of callback data. >> The race is as follow, spotted with help of http.c: >> >> 1 Thread 2 Thread >> 1) http:conn_pool_get 1) http:check_pool_conn >> 2) conn = XYZ >> 3) conn_unregister >> in conn_unregister >> destroy callbackdata >> 2) dict_get(conn_pool, >> key) -> crash because connback data already >> destroyed >> >> @Vincent: you reported similar crash. This patch should fix it. >> >> Votes please? >> >> -- >> Thanks, >> Alex >> >> > > -- Thanks, Alex