avoid crashes in ndr_print_*() calls
authorAndrew Tridgell <tridge@samba.org>
Fri, 12 Jun 2009 02:22:25 +0000 (12:22 +1000)
committerAndrew Tridgell <tridge@samba.org>
Fri, 12 Jun 2009 02:23:46 +0000 (12:23 +1000)
This is a hackish fix, but it will do for now

librpc/ndr/ndr.c

index 8188ec998fe28e4b233a8e594a1a3cae6be3f1b7..f253bcb7aa3eb6d559b8c7ca66e2eabc521a5658 100644 (file)
@@ -218,6 +218,7 @@ _PUBLIC_ void ndr_print_debug(ndr_print_fn_t fn, const char *name, void *ptr)
        ndr->print = ndr_print_debug_helper;
        ndr->depth = 1;
        ndr->flags = 0;
+       ndr->iconv_convenience = global_iconv_convenience;
        fn(ndr, name, ptr);
        talloc_free(ndr);
 }
@@ -236,6 +237,7 @@ _PUBLIC_ void ndr_print_union_debug(ndr_print_fn_t fn, const char *name, uint32_
        ndr->print = ndr_print_debug_helper;
        ndr->depth = 1;
        ndr->flags = 0;
+       ndr->iconv_convenience = global_iconv_convenience;
        ndr_print_set_switch_value(ndr, ptr, level);
        fn(ndr, name, ptr);
        talloc_free(ndr);
@@ -255,6 +257,7 @@ _PUBLIC_ void ndr_print_function_debug(ndr_print_function_t fn, const char *name
        ndr->print = ndr_print_debug_helper;
        ndr->depth = 1;
        ndr->flags = 0;
+       ndr->iconv_convenience = global_iconv_convenience;
        fn(ndr, name, flags, ptr);
        talloc_free(ndr);
 }
@@ -276,6 +279,7 @@ _PUBLIC_ char *ndr_print_struct_string(TALLOC_CTX *mem_ctx, ndr_print_fn_t fn, c
        ndr->print = ndr_print_string_helper;
        ndr->depth = 1;
        ndr->flags = 0;
+       ndr->iconv_convenience = global_iconv_convenience;
        fn(ndr, name, ptr);
        ret = talloc_steal(mem_ctx, (char *)ndr->private_data);
 failed:
@@ -300,6 +304,7 @@ _PUBLIC_ char *ndr_print_union_string(TALLOC_CTX *mem_ctx, ndr_print_fn_t fn, co
        ndr->print = ndr_print_string_helper;
        ndr->depth = 1;
        ndr->flags = 0;
+       ndr->iconv_convenience = global_iconv_convenience;
        ndr_print_set_switch_value(ndr, ptr, level);
        fn(ndr, name, ptr);
        ret = talloc_steal(mem_ctx, (char *)ndr->private_data);