1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00
Gary Lockyer ee4617ec5f librpc dnsp test: Ensure length matches union selector
Ensure that a dnsp_DnsProperty is rejected if the length data does not not
correspond to the length indicated by the union id.  It was possible for
the union to be referencing memory past the end of the structure.

Found by Douglas Bagnall using Hongfuzz and the new fuzz_ndr_X fuzzer.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=14206
Signed-off-by: Gary Lockyer <gary@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2019-12-12 00:35:30 +00:00
..
2016-02-06 21:48:18 +01:00
2015-03-20 20:43:12 +01:00
2015-03-20 20:43:12 +01:00
2013-03-15 13:51:51 +01:00
2016-02-06 21:48:18 +01:00
2017-03-02 04:35:14 +01:00

use
	hexdump -v -e '12/1 "0x%02x, " "\n"' infile|outfile

to import ndr dumps


Or use gdb:

(gdb) b dump_printer
Breakpoint 1 at 0x49c92f: file ../source3/utils/net_printing.c, line 158.
(gdb) cond 1 strcmp(key_name, "s0bc") == 0
(gdb) run
Breakpoint 1, dump_printer (mem_ctx=0x700a20, key_name=0x11fb8f9 "s0bc", data=0x18f93d0 "H\032", length=1284, do_string_conversion=true) at ../source3/utils/net_printing.c:158
158             printf("found printer: %s\n", key_name);

-> Now use x/<length in byte>bx

(gdb) x/1284bx data

This prints data as hex values. 1284 is the length in byte (see the length
argument of the function). The b indicates byte.