Fix a crash bug in nt_printer_publish_ads
authorVolker Lendecke <vl@samba.org>
Wed, 16 Jan 2008 10:39:20 +0000 (11:39 +0100)
committerVolker Lendecke <vl@samba.org>
Wed, 16 Jan 2008 10:39:20 +0000 (11:39 +0100)
Reported by Martin Zielinski <mz@seh.de>

source/printing/nt_printing.c

index bba55c0e4ac8a252475ebbd84c296c33ecd2119a..d5803b711bd0366813ae0a5ea2a5db8eba348699 100644 (file)
@@ -3315,8 +3315,13 @@ static WERROR nt_printer_publish_ads(ADS_STRUCT *ads,
 
        /* publish it */
        ads_rc = ads_mod_printer_entry(ads, prt_dn, ctx, &mods);
-       if (ads_rc.err.rc == LDAP_NO_SUCH_OBJECT)
+       if (ads_rc.err.rc == LDAP_NO_SUCH_OBJECT) {
+               int i;
+               for (i=0; mods[i] != 0; i++)
+                       ;
+               mods[i] = (LDAPMod *)-1;
                ads_rc = ads_add_printer_entry(ads, prt_dn, ctx, &mods);
+       }
 
        if (!ADS_ERR_OK(ads_rc))
                DEBUG(3, ("error publishing %s: %s\n", printer->info_2->sharename, ads_errstr(ads_rc)));