s3 libaddns: Prevent a crash when dns_create_update fails
authorKai Blin <kai@samba.org>
Tue, 22 Nov 2011 10:26:04 +0000 (11:26 +0100)
committerKai Blin <kai@samba.org>
Tue, 22 Nov 2011 13:29:07 +0000 (14:29 +0100)
When dns_create_update() fails, it does not initialize *req, and then TALLOC_FREE(req) in the
error handling crashes if we're lucky.
Instead of going into the generic error handling, treat the failure in dns_create_update() like
dns_create_update_request() and just pass on the error.

Thanks to Harry Mason for reporting this issue.

Autobuild-User: Kai Blin <kai@samba.org>
Autobuild-Date: Tue Nov 22 14:29:07 CET 2011 on sn-devel-104

lib/addns/dnsrecord.c

index 045fd465da80cec42cc191fffe295dbf4d3266ae..de70bca214e812b2bbd713d678c21e3a2bccd831 100644 (file)
@@ -377,7 +377,7 @@ DNS_ERROR dns_create_probe(TALLOC_CTX *mem_ctx, const char *zone,
        uint16 i;
 
        err = dns_create_update(mem_ctx, zone, &req);
        uint16 i;
 
        err = dns_create_update(mem_ctx, zone, &req);
-       if (!ERR_DNS_IS_OK(err)) goto error;
+       if (!ERR_DNS_IS_OK(err)) return err;
 
        err = dns_create_name_not_in_use_record(req, host, QTYPE_CNAME, &rec);
        if (!ERR_DNS_IS_OK(err)) goto error;
 
        err = dns_create_name_not_in_use_record(req, host, QTYPE_CNAME, &rec);
        if (!ERR_DNS_IS_OK(err)) goto error;