r19525: Fix the same error in "net ads group delete".
authorGünther Deschner <gd@samba.org>
Wed, 1 Nov 2006 10:59:28 +0000 (10:59 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:15:40 +0000 (12:15 -0500)
Guenther

source/utils/net_ads.c

index a4ed3d50eaa5abb8e4e4f53b5d37c1e69d1e90c9..b425ecf7c23cd898f7bb9a7e5e8f8b0103c45865 100644 (file)
@@ -701,7 +701,7 @@ static int ads_group_delete(int argc, const char **argv)
 {
        ADS_STRUCT *ads;
        ADS_STATUS rc;
-       LDAPMessage *res;
+       LDAPMessage *res = NULL;
        char *groupdn;
 
        if (argc < 1) {
@@ -713,8 +713,9 @@ static int ads_group_delete(int argc, const char **argv)
        }
 
        rc = ads_find_user_acct(ads, &res, argv[0]);
-       if (!ADS_ERR_OK(rc)) {
+       if (!ADS_ERR_OK(rc) || ads_count_replies(ads, res) != 1) {
                d_printf("Group %s does not exist.\n", argv[0]);
+               ads_msgfree(ads, res);
                ads_destroy(&ads);
                return -1;
        }
@@ -722,7 +723,7 @@ static int ads_group_delete(int argc, const char **argv)
        ads_msgfree(ads, res);
        rc = ads_del_dn(ads, groupdn);
        ads_memfree(ads, groupdn);
-       if (!ADS_ERR_OK(rc)) {
+       if (ADS_ERR_OK(rc)) {
                d_printf("Group %s deleted\n", argv[0]);
                ads_destroy(&ads);
                return 0;