diff options
author | Tim Potter <tpot@samba.org> | 2003-11-23 10:50:52 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2003-11-23 10:50:52 +0000 |
commit | c071301a77b1987526f42c8877336a1f6a1bfa7e (patch) | |
tree | 6664a2820f69608b555d4da5fe66cfa00744af7f /source4 | |
parent | 1b9452ffc5d21bcc621806273a1ab0366843451f (diff) | |
download | samba-c071301a77b1987526f42c8877336a1f6a1bfa7e.tar.gz samba-c071301a77b1987526f42c8877336a1f6a1bfa7e.tar.bz2 samba-c071301a77b1987526f42c8877336a1f6a1bfa7e.zip |
Add a strlen_m_term() function for returning the length of a string
including the termination. Using value(strlen_m((r->name)+1)*2) gives
the wrong answer for the NULL string.
(This used to be commit 7ae329e6630a07d29f83b6dd4572d26ab8a18c71)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/lib/util_str.c | 15 | ||||
-rw-r--r-- | source4/librpc/idl/winreg.idl | 4 |
2 files changed, 17 insertions, 2 deletions
diff --git a/source4/lib/util_str.c b/source4/lib/util_str.c index 285b0cc02e..6005a3e49a 100644 --- a/source4/lib/util_str.c +++ b/source4/lib/util_str.c @@ -1092,6 +1092,21 @@ size_t strlen_m(const char *s) } /** + Work out the number of multibyte chars in a string, including the NULL + terminator. +**/ +size_t strlen_m_term(const char *s) +{ + size_t count = 0; + + if (!s) { + return 0; + } + + return strlen_m(s) + 1; +} + +/** Convert a string to upper case. **/ diff --git a/source4/librpc/idl/winreg.idl b/source4/librpc/idl/winreg.idl index c7dc3942df..263946bdda 100644 --- a/source4/librpc/idl/winreg.idl +++ b/source4/librpc/idl/winreg.idl @@ -10,8 +10,8 @@ ] interface winreg { typedef struct { - [value(2*(strlen_m(r->name)+1))] uint16 name_len; - [value(r->name_len)] uint16 name_size; + [value(strlen_m_term(r->name)*2)] uint16 name_len; + [value(r->name_len)] uint16 name_size; unistr *name; } winreg_String; |