svn commit: samba r19290 - in branches/SAMBA_3_0/source/librpc:
gen_ndr idl
vlendec at samba.org
vlendec at samba.org
Sun Oct 15 14:47:25 GMT 2006
Author: vlendec
Date: 2006-10-15 14:47:25 +0000 (Sun, 15 Oct 2006)
New Revision: 19290
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19290
Log:
regedit running on nt4 will cut off the last character from a enumkey without
this patch. Jerry, Jelmer, can you please check this?
Thanks,
Volker
Modified:
branches/SAMBA_3_0/source/librpc/gen_ndr/ndr_winreg.c
branches/SAMBA_3_0/source/librpc/gen_ndr/winreg.h
branches/SAMBA_3_0/source/librpc/idl/winreg.idl
Changeset:
Modified: branches/SAMBA_3_0/source/librpc/gen_ndr/ndr_winreg.c
===================================================================
--- branches/SAMBA_3_0/source/librpc/gen_ndr/ndr_winreg.c 2006-10-15 10:11:15 UTC (rev 19289)
+++ branches/SAMBA_3_0/source/librpc/gen_ndr/ndr_winreg.c 2006-10-15 14:47:25 UTC (rev 19290)
@@ -268,7 +268,7 @@
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 4));
- NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m(r->name)*2));
+ NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, strlen_m_term(r->name)*2));
NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
}
@@ -276,8 +276,8 @@
if (r->name) {
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size/2));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->name)*2/2));
- NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m(r->name)*2/2, sizeof(uint16_t), CH_UTF16));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m_term(r->name)*2/2));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, strlen_m_term(r->name)*2/2, sizeof(uint16_t), CH_UTF16));
}
}
return NT_STATUS_OK;
@@ -324,7 +324,7 @@
{
ndr_print_struct(ndr, name, "winreg_StringBuf");
ndr->depth++;
- ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->name)*2:r->length);
+ ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m_term(r->name)*2:r->length);
ndr_print_uint16(ndr, "size", r->size);
ndr_print_ptr(ndr, "name", r->name);
ndr->depth++;
Modified: branches/SAMBA_3_0/source/librpc/gen_ndr/winreg.h
===================================================================
--- branches/SAMBA_3_0/source/librpc/gen_ndr/winreg.h 2006-10-15 10:11:15 UTC (rev 19289)
+++ branches/SAMBA_3_0/source/librpc/gen_ndr/winreg.h 2006-10-15 14:47:25 UTC (rev 19290)
@@ -48,7 +48,7 @@
};
struct winreg_StringBuf {
- uint16_t length;/* [value(strlen_m(name)*2)] */
+ uint16_t length;/* [value(strlen_m_term(name)*2)] */
uint16_t size;
const char *name;/* [unique,length_is(length/2),charset(UTF16),size_is(size/2)] */
};
Modified: branches/SAMBA_3_0/source/librpc/idl/winreg.idl
===================================================================
--- branches/SAMBA_3_0/source/librpc/idl/winreg.idl 2006-10-15 10:11:15 UTC (rev 19289)
+++ branches/SAMBA_3_0/source/librpc/idl/winreg.idl 2006-10-15 14:47:25 UTC (rev 19290)
@@ -131,7 +131,7 @@
);
typedef struct {
- [value(strlen_m(name)*2)] uint16 length;
+ [value(strlen_m_term(name)*2)] uint16 length;
/* size cannot be auto-set by value() as it is the
amount of space the server is allowed to use for this
string in the reply, not its current size */
More information about the samba-cvs
mailing list