Re: [PATCH] fix unregister/callback race in conn.c
"Mi Reflejo" <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[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
>
>