diff --git a/src/ChangeLog b/src/ChangeLog index fa420de9..dedaeade 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2003-11-06 Hrvoje Niksic + + * connect.c (xclose): Free INFO even if it doesn't provide a + closer. + 2003-11-06 Hrvoje Niksic * connect.c: Updated all callers of diff --git a/src/connect.c b/src/connect.c index fcd8aec2..111969f8 100644 --- a/src/connect.c +++ b/src/connect.c @@ -753,12 +753,14 @@ xclose (int fd) info = hash_table_get (extended_map, (void *) fd); if (info && info->closer) + info->closer (fd, info->ctx); + else + sock_close (fd); + + if (info) { - info->closer (fd, info->ctx); hash_table_remove (extended_map, (void *) fd); xfree (info); ++extended_map_modified_tick; } - else - sock_close (fd); }