gdb --args /usr/sbin/winbindd --foreground --no-process-group -S with an breakpoint at break librpc/ndr/ndr.c:1089 ret = ndr_token_store(ndr, &ndr->array_size_list, p, size); until the error occurs (cont 65533) ndr_pull_array_size (ndr=ndr@entry=0x5555558cf020, p=p@entry=0x7fffdca09f78) at ../../librpc/ndr/ndr.c:1090 1090 if (ret == NDR_ERR_RANGE) { (gdb) ndr_pull_wbint_Principal (ndr=ndr@entry=0x5555558cf020, ndr_flags=ndr_flags@entry=512, r=0x7fffdca09f30) at librpc/gen_ndr/ndr_winbind.c:566 566 NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); (gdb) cont Continuing. Breakpoint 1, ndr_pull_array_size (ndr=ndr@entry=0x5555558cf020, p=p@entry=0x7fffdca09fc8) at ../../librpc/ndr/ndr.c:1089 1089 ret = ndr_token_store(ndr, &ndr->array_size_list, p, size); (gdb) step ndr_token_store (mem_ctx=mem_ctx@entry=0x5555558cf020, list=list@entry=0x5555558cf068, key=key@entry=0x7fffdca09fc8, value=31) at ../../librpc/ndr/ndr.c:979 979 { (gdb) 980 if (list->tokens == NULL) { (gdb) 987 uint32_t alloc_count = talloc_array_length(list->tokens); (gdb) talloc_get_size (context=0x5555573f97b0) at ../../lib/talloc/talloc.c:2821 2821 { (gdb) 2824 if (context == NULL) { (gdb) 2828 tc = talloc_chunk_from_ptr(context); (gdb) talloc_get_size (context=0x5555573f97b0) at ../../lib/talloc/talloc.c:2830 2830 return tc->size; (gdb) ndr_token_store (mem_ctx=mem_ctx@entry=0x5555558cf020, list=list@entry=0x5555558cf068, key=key@entry=0x7fffdca09fc8, value=31) at ../../librpc/ndr/ndr.c:994 994 if (list->count >= NDR_TOKEN_MAX_LIST_SIZE) { (gdb) 997 if (list->count == alloc_count) { (gdb) 1014 list->tokens[list->count].key = key; (gdb) 1015 list->tokens[list->count].value = value; (gdb) 1016 list->count++; (gdb) 1017 return NDR_ERR_SUCCESS; (gdb) ndr_pull_array_size (ndr=ndr@entry=0x5555558cf020, p=p@entry=0x7fffdca09fc8) at ../../librpc/ndr/ndr.c:1090 1090 if (ret == NDR_ERR_RANGE) { (gdb) ndr_pull_wbint_Principal (ndr=ndr@entry=0x5555558cf020, ndr_flags=ndr_flags@entry=512, r=0x7fffdca09f80) at librpc/gen_ndr/ndr_winbind.c:566 566 NDR_CHECK(ndr_pull_array_size(ndr, &r->name)); (gdb) 567 NDR_CHECK(ndr_pull_array_length(ndr, &r->name)); (gdb) cont Continuing. Breakpoint 1, ndr_pull_array_size (ndr=ndr@entry=0x5555558cf020, p=p@entry=0x7fffdca0a018) at ../../librpc/ndr/ndr.c:1089 1089 ret = ndr_token_store(ndr, &ndr->array_size_list, p, size); (gdb) step ndr_token_store (mem_ctx=mem_ctx@entry=0x5555558cf020, list=list@entry=0x5555558cf068, key=key@entry=0x7fffdca0a018, value=31) at ../../librpc/ndr/ndr.c:979 979 { (gdb) 980 if (list->tokens == NULL) { (gdb) 987 uint32_t alloc_count = talloc_array_length(list->tokens); (gdb) talloc_get_size (context=0x5555573f97b0) at ../../lib/talloc/talloc.c:2821 2821 { (gdb) 2824 if (context == NULL) { (gdb) 2828 tc = talloc_chunk_from_ptr(context); (gdb) talloc_get_size (context=0x5555573f97b0) at ../../lib/talloc/talloc.c:2830 2830 return tc->size; (gdb) ndr_token_store (mem_ctx=mem_ctx@entry=0x5555558cf020, list=list@entry=0x5555558cf068, key=key@entry=0x7fffdca0a018, value=31) at ../../librpc/ndr/ndr.c:994 994 if (list->count >= NDR_TOKEN_MAX_LIST_SIZE) { (gdb) 1017 return NDR_ERR_SUCCESS; (gdb) ndr_pull_array_size (ndr=ndr@entry=0x5555558cf020, p=p@entry=0x7fffdca0a018) at ../../librpc/ndr/ndr.c:1090 1090 if (ret == NDR_ERR_RANGE) { (gdb) 1091 return ndr_pull_error(ndr, ret, (gdb) _ndr_pull_error (ndr=ndr@entry=0x5555558cf020, ndr_err=ndr_err@entry=NDR_ERR_RANGE, function=function@entry=0x7ffff7bcd650 <__FUNCTION__.9556> "ndr_pull_array_size", location=location@entry=0x7ffff7bcc431 "../../librpc/ndr/ndr.c:1093", format=format@entry=0x7ffff7bcce00 "More than %d NDR tokens stored for array_size") at ../../librpc/ndr/ndr.c:606 606 { (gdb) 607 char *s=NULL;