libcli/cldap: fix a crash bug in cldap_socket_recv_dgram() (bug #8593)
authorStefan Metzmacher <metze@samba.org>
Thu, 10 Nov 2011 13:43:55 +0000 (14:43 +0100)
committerKarolin Seeger <kseeger@samba.org>
Mon, 5 Mar 2012 19:55:08 +0000 (20:55 +0100)
After a calling any wrapper of tevent_req_notify_callback(),
e.g. tevent_req_nterror(), tevent_req_done(), tevent_req_nomem(),
a function has to return immediately otherwise it is very likely to
crash.

metze

(similar to commit 17f1a97a614db4ed8292544988cb6a6cf56621d8)
(cherry picked from commit d2aa10c255932b2d3060fcfc5cea19caef213724)

libcli/cldap/cldap.c

index 191d0eeee49c1d6e4873dcb1ca20cbcecc3d1228..a01cbf8484ee43da60b340aa352467d7af04eccc 100644 (file)
@@ -278,6 +278,7 @@ nomem:
 error:
        status = map_nt_error_from_unix(in->recv_errno);
 nterror:
+       TALLOC_FREE(in);
        /* in connected mode the first pending search gets the error */
        if (!c->connected) {
                /* otherwise we just ignore the error */
@@ -288,7 +289,7 @@ nterror:
        }
        tevent_req_nterror(c->searches.list->req, status);
 done:
-       talloc_free(in);
+       TALLOC_FREE(in);
 }
 
 /*