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)
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;