diff options
author | Gerald Carter <jerry@samba.org> | 2000-08-09 20:14:29 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2000-08-09 20:14:29 +0000 |
commit | a08d4448964641150cad0e6b3fb0055602ef79be (patch) | |
tree | 42eccb835f29754e1f9eafff5d0718e60994cd46 /source3/rpc_parse/parse_misc.c | |
parent | e3048cfc0b324ec5ab825efe87eaa97cc9504c09 (diff) | |
download | samba-a08d4448964641150cad0e6b3fb0055602ef79be.tar.gz samba-a08d4448964641150cad0e6b3fb0055602ef79be.tar.bz2 samba-a08d4448964641150cad0e6b3fb0055602ef79be.zip |
More work on AddPrinterDriver() and AddPrinterEx() client RPC's
Also fixed init_unistr() to deal with a NULL source character string.
-jerry
(This used to be commit 8ecd5dd52a6bd867f5d117352048ee43ce7254d9)
Diffstat (limited to 'source3/rpc_parse/parse_misc.c')
-rw-r--r-- | source3/rpc_parse/parse_misc.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/source3/rpc_parse/parse_misc.c b/source3/rpc_parse/parse_misc.c index 617552009c..02ab707a40 100644 --- a/source3/rpc_parse/parse_misc.c +++ b/source3/rpc_parse/parse_misc.c @@ -473,21 +473,32 @@ BOOL smb_io_unihdr2(char *desc, UNIHDR2 *hdr2, prs_struct *ps, int depth) void init_unistr(UNISTR *str, const char *buf) { - size_t len = strlen(buf) + 1; + size_t len; - if (!parse_misc_talloc) + if (buf == NULL) + { + str->buffer = NULL; + return; + } + + + len = strlen(buf) + 1; + + if (!parse_misc_talloc) parse_misc_talloc = talloc_init(); if (len < MAX_UNISTRLEN) len = MAX_UNISTRLEN; len *= sizeof(uint16); - str->buffer = (uint16 *)talloc(parse_misc_talloc, len); + str->buffer = (uint16 *)talloc(parse_misc_talloc, len); if (str->buffer == NULL) smb_panic("init_unistr2: malloc fail\n"); /* store the string (null-terminated copy) */ dos_struni2((char *)str->buffer, buf, len); + + return; } /******************************************************************* |