s3-net: change the way impersonation principals are used in "net ads kerberos pac".
authorGünther Deschner <gd@samba.org>
Mon, 10 Mar 2014 14:11:18 +0000 (15:11 +0100)
committerGünther Deschner <gd@samba.org>
Wed, 12 Mar 2014 09:13:20 +0000 (10:13 +0100)
Guenther

Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/utils/net_ads.c

index 5a073b1cc71dd436ee76cfacfe65bf21fcbbbafd..ac6346f5b12d963f15dfa118630868cb69023996 100644 (file)
@@ -2605,6 +2605,7 @@ static int net_ads_kerberos_pac(struct net_context *c, int argc, const char **ar
        int ret = -1;
        const char *impersonate_princ_s = NULL;
        const char *local_service = NULL;
+       int i;
 
        if (c->display_usage) {
                d_printf(  "%s\n"
@@ -2615,15 +2616,20 @@ static int net_ads_kerberos_pac(struct net_context *c, int argc, const char **ar
                return 0;
        }
 
+       for (i=0; i<argc; i++) {
+               if (strnequal(argv[i], "impersonate", strlen("impersonate"))) {
+                       impersonate_princ_s = get_string_param(argv[i]);
+                       if (impersonate_princ_s == NULL) {
+                               return -1;
+                       }
+               }
+       }
+
        mem_ctx = talloc_init("net_ads_kerberos_pac");
        if (!mem_ctx) {
                goto out;
        }
 
-       if (argc > 0) {
-               impersonate_princ_s = argv[0];
-       }
-
        local_service = talloc_asprintf(mem_ctx, "%s$@%s",
                                        lp_netbios_name(), lp_realm());
        if (local_service == NULL) {