From b1aba7b03b1df1dad779c21445a74b56696efdc0 Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Thu, 17 Oct 2002 06:39:44 +0000 Subject: When unmarshalling a relstr, don't unmarshall the string data if the offset is zero. Previously we were jumping to the start of the parse buffer (i.e offset zero) and reading string data until we hit a terminating NULL. Test case: in a PRINTER_INFO_0 structure, the servername field may be NULL when doing an enumprinters with flags = PRINTER_ENUM_LOCAL. (This used to be commit e62c6bf066c2242aae605ba707c9775b37bcaca3) --- source3/rpc_parse/parse_spoolss.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source3/rpc_parse/parse_spoolss.c b/source3/rpc_parse/parse_spoolss.c index 783dd97ebf..32f0c3a369 100644 --- a/source3/rpc_parse/parse_spoolss.c +++ b/source3/rpc_parse/parse_spoolss.c @@ -2097,6 +2097,9 @@ static BOOL smb_io_relstr(char *desc, NEW_BUFFER *buffer, int depth, UNISTR *str if (!prs_uint32("offset", ps, depth, &(buffer->string_at_end))) return False; + if (buffer->string_at_end == 0) + return True; + old_offset = prs_offset(ps); if(!prs_set_offset(ps, buffer->string_at_end+buffer->struct_start)) return False; -- cgit