The branch, v3-6-test has been updated
       via  dd07b3c bug 9830: fix panic in nt_printer_publish_ads
      from  65860c5 s3:librpc: add support for PFC_FLAG_OBJECT_UUID when 
parsing packets (bug #9382)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit dd07b3c4973b169f07d227869dba8d0f4a76569a
Author: David Disseldorp <dd...@samba.org>
Date:   Thu Apr 25 16:01:54 2013 +0200

    bug 9830: fix panic in nt_printer_publish_ads
    
    Check for ads_find_machine_acct() errors, to ensure a NULL LDAPMessage
    pointer doesn't get passed to ldap_get_dn().
    
    Signed-off-by: David Disseldorp <dd...@samba.org>

-----------------------------------------------------------------------

Summary of changes:
 source3/printing/nt_printing_ads.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/printing/nt_printing_ads.c 
b/source3/printing/nt_printing_ads.c
index 5a0cd24..219124f 100644
--- a/source3/printing/nt_printing_ads.c
+++ b/source3/printing/nt_printing_ads.c
@@ -192,17 +192,23 @@ static WERROR nt_printer_publish_ads(struct 
messaging_context *msg_ctx,
        DEBUG(5, ("publishing printer %s\n", printer));
 
        /* figure out where to publish */
-       ads_find_machine_acct(ads, &res, global_myname());
+       ads_rc = ads_find_machine_acct(ads, &res, global_myname());
+       if (!ADS_ERR_OK(ads_rc)) {
+               DEBUG(0, ("failed to find machine account for %s\n",
+                         global_myname()));
+               TALLOC_FREE(ctx);
+               return WERR_NOT_FOUND;
+       }
 
        /* We use ldap_get_dn here as we need the answer
         * in utf8 to call ldap_explode_dn(). JRA. */
 
        srv_dn_utf8 = ldap_get_dn((LDAP *)ads->ldap.ld, (LDAPMessage *)res);
+       ads_msgfree(ads, res);
        if (!srv_dn_utf8) {
                TALLOC_FREE(ctx);
                return WERR_SERVER_UNAVAILABLE;
        }
-       ads_msgfree(ads, res);
        srv_cn_utf8 = ldap_explode_dn(srv_dn_utf8, 1);
        if (!srv_cn_utf8) {
                TALLOC_FREE(ctx);


-- 
Samba Shared Repository

Reply via email to