--- parse_lsa.c 2003-09-19 19:36:59.739996000 +0400 +++ parse_lsa.new 2003-09-19 19:17:23.000000000 +0400 @@ -1088,11 +1088,21 @@ for (i = 0; i < num_names; i++) { int len; + uint16 *ptr; + UNISTR2 *unistr; + + unistr = &q_l->uni_name[i]; len = strlen(names[i]); - - init_uni_hdr(&q_l->hdr_name[i], len); - init_unistr2(&q_l->uni_name[i], names[i], len); - + init_unistr2(unistr, names[i], len); + /* now calculate real length of UNICODE string */ + len=0; + for(ptr = unistr->buffer;*ptr;ptr++) len++; /* it is zero - terminated */ + + DEBUG(4,("init_unistr2(%s) pre length: %d actual length: %d\n",unistr->buffer, unistr->uni_str_len , len)); + unistr->uni_str_len = (uint32)len; + unistr->uni_max_len = (uint32)len; + + init_uni_hdr(&q_l->hdr_name[i], len); } }