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;