s3-libnet: fix bug #6364: Pull realm from supplied username on libnet join
authorJim McDonough <jmcd@samba.org>
Thu, 26 May 2011 18:30:33 +0000 (20:30 +0200)
committerKarolin Seeger <kseeger@samba.org>
Thu, 18 Aug 2011 19:15:09 +0000 (21:15 +0200)
(cherry picked from commit 9a172dcd2e7bf91d78885325bce7a19e937b48af)

source3/libnet/libnet_join.c

index 03832cffe5aef7a63493bf6f7ae70c6ffee05c85..648912640452adcbdbe1459638fc1bee15febda4 100644 (file)
@@ -100,6 +100,7 @@ static ADS_STATUS libnet_connect_ads(const char *dns_domain_name,
 {
        ADS_STATUS status;
        ADS_STRUCT *my_ads = NULL;
+       char *cp;
 
        my_ads = ads_init(dns_domain_name,
                          netbios_domain_name,
@@ -111,6 +112,12 @@ static ADS_STATUS libnet_connect_ads(const char *dns_domain_name,
        if (user_name) {
                SAFE_FREE(my_ads->auth.user_name);
                my_ads->auth.user_name = SMB_STRDUP(user_name);
+               if ((cp = strchr_m(my_ads->auth.user_name, '@'))!=0) {
+                       *cp++ = '\0';
+                       SAFE_FREE(my_ads->auth.realm);
+                       my_ads->auth.realm = smb_xstrdup(cp);
+                       strupper_m(my_ads->auth.realm);
+               }
        }
 
        if (password) {