svn commit: samba r19524 - in branches: SAMBA_3_0/source/utils SAMBA_3_0_23/source/utils SAMBA_3_0_24/source/utils

gd at samba.org gd at samba.org
Wed Nov 1 10:38:55 GMT 2006


Author: gd
Date: 2006-11-01 10:38:54 +0000 (Wed, 01 Nov 2006)
New Revision: 19524

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19524

Log:
Stop "net ads user delete" from doing funny things.

Guenther

Modified:
   branches/SAMBA_3_0/source/utils/net_ads.c
   branches/SAMBA_3_0_23/source/utils/net_ads.c
   branches/SAMBA_3_0_24/source/utils/net_ads.c


Changeset:
Modified: branches/SAMBA_3_0/source/utils/net_ads.c
===================================================================
--- branches/SAMBA_3_0/source/utils/net_ads.c	2006-11-01 09:57:56 UTC (rev 19523)
+++ branches/SAMBA_3_0/source/utils/net_ads.c	2006-11-01 10:38:54 UTC (rev 19524)
@@ -574,7 +574,7 @@
 {
 	ADS_STRUCT *ads;
 	ADS_STATUS rc;
-	LDAPMessage *res;
+	LDAPMessage *res = NULL;
 	char *userdn;
 
 	if (argc < 1) {
@@ -586,8 +586,9 @@
 	}
 
 	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("User %s does not exist.\n", argv[0]);
+		ads_msgfree(ads, res);
 		ads_destroy(&ads);
 		return -1;
 	}
@@ -595,7 +596,7 @@
 	ads_msgfree(ads, res);
 	rc = ads_del_dn(ads, userdn);
 	ads_memfree(ads, userdn);
-	if (!ADS_ERR_OK(rc)) {
+	if (ADS_ERR_OK(rc)) {
 		d_printf("User %s deleted\n", argv[0]);
 		ads_destroy(&ads);
 		return 0;

Modified: branches/SAMBA_3_0_23/source/utils/net_ads.c
===================================================================
--- branches/SAMBA_3_0_23/source/utils/net_ads.c	2006-11-01 09:57:56 UTC (rev 19523)
+++ branches/SAMBA_3_0_23/source/utils/net_ads.c	2006-11-01 10:38:54 UTC (rev 19524)
@@ -537,7 +537,7 @@
 {
 	ADS_STRUCT *ads;
 	ADS_STATUS rc;
-	void *res;
+	void *res = NULL;
 	char *userdn;
 
 	if (argc < 1) {
@@ -549,8 +549,9 @@
 	}
 
 	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) {
 		DEBUG(0, ("User %s does not exist\n", argv[0]));
+		ads_msgfree(ads, res);
 		ads_destroy(&ads);
 		return -1;
 	}
@@ -558,7 +559,7 @@
 	ads_msgfree(ads, res);
 	rc = ads_del_dn(ads, userdn);
 	ads_memfree(ads, userdn);
-	if (!ADS_ERR_OK(rc)) {
+	if (ADS_ERR_OK(rc)) {
 		d_printf("User %s deleted\n", argv[0]);
 		ads_destroy(&ads);
 		return 0;

Modified: branches/SAMBA_3_0_24/source/utils/net_ads.c
===================================================================
--- branches/SAMBA_3_0_24/source/utils/net_ads.c	2006-11-01 09:57:56 UTC (rev 19523)
+++ branches/SAMBA_3_0_24/source/utils/net_ads.c	2006-11-01 10:38:54 UTC (rev 19524)
@@ -558,7 +558,7 @@
 {
 	ADS_STRUCT *ads;
 	ADS_STATUS rc;
-	void *res;
+	void *res = NULL;
 	char *userdn;
 
 	if (argc < 1) {
@@ -570,8 +570,9 @@
 	}
 
 	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) {
 		DEBUG(0, ("User %s does not exist\n", argv[0]));
+		ads_msgfree(ads, res);
 		ads_destroy(&ads);
 		return -1;
 	}
@@ -579,7 +580,7 @@
 	ads_msgfree(ads, res);
 	rc = ads_del_dn(ads, userdn);
 	ads_memfree(ads, userdn);
-	if (!ADS_ERR_OK(rc)) {
+	if (ADS_ERR_OK(rc)) {
 		d_printf("User %s deleted\n", argv[0]);
 		ads_destroy(&ads);
 		return 0;



More information about the samba-cvs mailing list