s3:net: Fix a segfault in "net rpc trustdom list" for overlong domain names
authorVolker Lendecke <vl@samba.org>
Tue, 13 Oct 2009 13:56:00 +0000 (15:56 +0200)
committerKarolin Seeger <kseeger@samba.org>
Tue, 20 Oct 2009 13:00:29 +0000 (15:00 +0200)
That was a complicated way to say "%-20.s"... But that code was from 2002 ...
(cherry picked from commit 8a27fdea89bc54aa35e363a376836662103c7cb7)

Fix Bug #6807.
(cherry picked from commit aa5a43143f26dee14dc1efe2a979a6701ddc650b)

source3/utils/net_rpc.c

index 7fafa1b587722128139f8581338db81da844f55a..62c3faaea7065fcef63e3b8d4a6f3ae602af3986 100644 (file)
@@ -5949,14 +5949,13 @@ static int rpc_trustdom_list(struct net_context *c, int argc, const char **argv)
        NTSTATUS nt_status;
        const char *domain_name = NULL;
        DOM_SID *queried_dom_sid;
-       fstring padding;
        int ascii_dom_name_len;
        struct policy_handle connect_hnd;
        union lsa_PolicyInformation *info = NULL;
 
        /* trusted domains listing variables */
        unsigned int num_domains, enum_ctx = 0;
-       int i, pad_len, col_len = 20;
+       int i;
        struct lsa_DomainList dom_list;
        fstring pdc_name;
 
@@ -6165,17 +6164,12 @@ static int rpc_trustdom_list(struct net_context *c, int argc, const char **argv)
                        if (ascii_dom_name_len && ascii_dom_name_len < FSTRING_LEN)
                                str[ascii_dom_name_len - 1] = '\0';
 
-                       /* calculate padding space for d_printf to look nicer */
-                       pad_len = col_len - strlen(str);
-                       padding[pad_len] = 0;
-                       do padding[--pad_len] = ' '; while (pad_len);
-
                        /* set opt_* variables to remote domain */
                        strupper_m(str);
                        c->opt_workgroup = talloc_strdup(mem_ctx, str);
                        c->opt_target_workgroup = c->opt_workgroup;
 
-                       d_printf("%s%s", str, padding);
+                       d_printf("%-20s", str);
 
                        /* connect to remote domain controller */
                        nt_status = net_make_ipc_connection(c,