fix mem leak in ldbsearch
authorAndrej Gessel <Andrej.Gessel@janztec.com>
Mon, 16 Jul 2018 09:43:22 +0000 (11:43 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 15 Aug 2018 05:08:24 +0000 (07:08 +0200)
Signed-off-by: Andrej Gessel <Andrej.Gessel@janztec.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
lib/ldb/tools/ldbsearch.c

index 5eae6242a9977104d56bc28b95356f187f1470c9..374f2405e4738bc94b094f586d15d778168e8cde 100644 (file)
@@ -248,12 +248,16 @@ again:
 
        ret = ldb_request(ldb, req);
        if (ret != LDB_SUCCESS) {
+               talloc_free(sctx);
+               talloc_free(req);
                printf("search failed - %s\n", ldb_errstring(ldb));
                return ret;
        }
 
        ret = ldb_wait(req->handle, LDB_WAIT_ALL);
        if (ret != LDB_SUCCESS) {
+               talloc_free(sctx);
+               talloc_free(req);
                printf("search error - %s\n", ldb_errstring(ldb));
                return ret;
        }
@@ -318,6 +322,7 @@ int main(int argc, const char **argv)
        if (options->basedn != NULL) {
                basedn = ldb_dn_new(ldb, ldb, options->basedn);
                if (basedn == NULL) {
+                       talloc_free(mem_ctx);
                        return LDB_ERR_OPERATIONS_ERROR;
                }
        }