From a8d08ac8d2465673ee6ab34b668acc76631957ac Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 00:41:01 +0000 Subject: [PATCH 1/2] Add a new fuzz input data for FuzzNewXMLFile in github.com/shogo82148/androidbinary. `go test -run=FuzzNewXMLFile/edccc9a94336dee2 github.com/shogo82148/androidbinary` failed with the following output: ``` ok github.com/shogo82148/androidbinary 0.149s ``` This fuzz data is generated by [actions-go-fuzz](https://github.com/shogo82148/actions-go-fuzz). --- testdata/fuzz/FuzzNewXMLFile/edccc9a94336dee2 | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 testdata/fuzz/FuzzNewXMLFile/edccc9a94336dee2 diff --git a/testdata/fuzz/FuzzNewXMLFile/edccc9a94336dee2 b/testdata/fuzz/FuzzNewXMLFile/edccc9a94336dee2 new file mode 100644 index 0000000..a930df1 --- /dev/null +++ b/testdata/fuzz/FuzzNewXMLFile/edccc9a94336dee2 @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\x03\x00\b\x00T\v\x00\x00\x01\x00\x1c\x00\x94\x05\x00\x00\"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x004\x00\x00\x00@\x00\x00\x00N\x00\x00\x00Z\x00\x00\x00r\x00\x00\x00\x98\x00\x00\x00\xaa\x00\x00\x00\x02\x01\x00\x00\x06\x01\x00\x00\x18\x01\x00\x00,\x01\x00\x00h\x01\x00\x00t\x01\x00\x00\x96\x01\x00\x00\xcc\x01\x00\x00\b\x02\x00\x00Z\x02\x00\x00\x94\x02\x00\x00\xe6\x02\x00\x00(\x03\x00\x00B\x03\x00\x00^\x03\x00\x00\x90\x03\x00\x00\xa4\x03\x00\x00\xca\x03\x00\x00\xe8\x03\x00\x00\xf8\x03\x00\x000\x04\x00\x00D\x04\x00\x00\x88\x04\x00\x00\xa2\x04\x00\x00\xc4\x04\x00\x00\v\x00v\x00e\x00r\x00s\x00i\x00o\x00n\x00N\x00a\x00m\x00e\x00\x00\x00\v\x00v\x00e\x00r\x00s\x00i\x00o\x00n\x00C\x00o\x00d\x00e\x00\x00\x00\x04\x00n\x00a\x00m\x00e\x00\x00\x00\x05\x00l\x00a\x00b\x00e\x00l\x00\x00\x00\x04\x00i\x00c\x00o\x00n\x00\x00\x00\n\x00d\x00e\x00b\x00u\x00g\x00g\x00a\x00b\x00l\x00e\x00\x00\x00\x11\x00s\x00c\x00r\x00e\x00e\x00n\x00O\x00r\x00i\x00e\x00n\x00t\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\a\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00\x00\x00*\x00h\x00t\x00t\x00p\x00:\x00/\x00/\x00s\x00c\x00h\x00e\x00m\x00a\x00s\x00.\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00c\x00o\x00m\x00/\x00a\x00p\x00k\x00/\x00r\x00e\x00s\x00/\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00\x00\x00\x00\x00\x00\x00\a\x00p\x00a\x00c\x00k\x00a\x00g\x00e\x00\x00\x00\b\x00m\x00a\x00n\x00i\x00f\x00e\x00s\x00t\x00\x00\x00\x1c\x00n\x00\x00t\x00.\x00s\x00o\x00r\x00a\x00b\x00l\x00u\x00e\x00.\x00s\x00h\x00o\x00g\x00o\x00.\x00F\x00W\x00M\x00e\x00a\x00s\x00u\x00r\x00e\x00\x00\x00\x04\x00\xc60\xb90\xc80Hr\x00\x00\x0f\x00u\x00s\x00e\x00s\x00-\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00\x00\x00\x19\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00C\x00A\x00M\x00E\x00R\x00A\x00\x00\x00\x1c\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00W\x00A\x00K\x00E\x00_\x00L\x00O\x00C\x00K\x00\x00\x00'\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00A\x00C\x00C\x00E\x00S\x00S\x00_\x00F\x00I\x00N\x00E\x00_\x00L\x00O\x00C\x00A\x00T\x00I\x00O\x00N\x00\x00\x00\x1b\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00I\x00N\x00T\x00E\x00R\x00N\x00E\x00T\x00\x00\x00'\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00A\x00C\x00C\x00E\x00S\x00S\x00_\x00M\x00O\x00C\x00K\x00_\x00L\x00O\x00C\x00A\x00T\x00I\x00O\x00N\x00\x00\x00\x1f\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00R\x00E\x00C\x00O\x00R\x00D\x00_\x00A\x00U\x00D\x00I\x00O\x00\x00\x00\v\x00a\x00p\x00p\x00l\x00i\x00c\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\f\x00u\x00s\x00e\x00s\x00-\x00l\x00i\x00b\x00r\x00a\x00r\x00y\x00\x00\x00\x17\x00c\x00o\x00m\x00.\x00g\x00o\x00o\x00g\x00l\x00e\x00.\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00m\x00a\x00p\x00s\x00\x00\x00\b\x00a\x00c\x00t\x00i\x00v\x00i\x00t\x00y\x00\x00\x00\x11\x00F\x00W\x00M\x00e\x00a\x00s\x00u\x00r\x00e\x00A\x00c\x00t\x00i\x00v\x00i\x00t\x00y\x00\x00\x00\r\x00i\x00n\x00t\x00e\x00n\x00t\x00-\x00f\x00i\x00l\x00t\x00e\x00r\x00\x00\x00\x06\x00a\x00c\x00t\x00i\x00o\x00n\x00\x00\x00\x1a\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00i\x00n\x00t\x00e\x00n\x00t\x00.\x00a\x00c\x00t\x00i\x00o\x00n\x00.\x00M\x00A\x00I\x00N\x00\x00\x00\b\x00c\x00a\x00t\x00e\x00g\x00o\x00r\x00y\x00\x00\x00 \x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00i\x00n\x00t\x00e\x00n\x00t\x00.\x00c\x00a\x00t\x00e\x00g\x00o\x00r\x00y\x00.\x00L\x00A\x00U\x00N\x00C\x00H\x00E\x00R\x00\x00\x00\v\x00M\x00a\x00p\x00A\x00c\x00t\x00i\x00v\x00i\x00t\x00y\x00\x00\x00\x0f\x00S\x00e\x00t\x00t\x00i\x00n\x00g\x00A\x00c\x00t\x00i\x00v\x00i\x00t\x00y\x00\x00\x00\x14\x00P\x00l\x00a\x00c\x00e\x00S\x00e\x00t\x00t\x00i\x00n\x00g\x00A\x00c\x00t\x00i\x00v\x00i\x00t\x00y\x00\x00\x00\x80\x01\b\x00$\x00\x00\x00\x1c\x02\x01\x01\x1b\x02\x01\x01\x03\x00\x01\x01\x01\x00\x01\x01\x02\x00\x01\x01\x0f\x00\x01\x01\x1e\x00\x01\x01\x00\x01\x10\x00\x18\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\a\x00\x00\x00\b\x00\x00\x00\x02\x01\x10\x00`\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\v\x00\x00\x00\x14\x00\x14\x00\x03\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\b\x00\x00\x10\x01\x00\x00\x00\b\x00\x00\x00\x00\x00\x00\x00\r\x00\x00\x00\b\x00\x00\x03\r\x00\x00\x00\xff\xff\xff\xff\n\x00\x00\x00\f\x00\x00\x00\b\x00\x00\x03\f\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\x04\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x0f\x00\x00\x00\b\x00\x00\x03\x0f\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x04\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\b\x00\x00\x03\x10\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\x06\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\b\x00\x00\x03\x11\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x06\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x12\x00\x00\x00\b\x00\x00\x03\x12\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\b\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x13\x00\x00\x00\b\x00\x00\x03\x13\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\b\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\t\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\b\x00\x00\x03\x14\x00\x00\x00\x03\x01\x10\x00HHHHHH\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00") From fa99d3f164d41b28226cfb4f217edaae90356f51 Mon Sep 17 00:00:00 2001 From: ICHINOSE Shogo Date: Mon, 11 Sep 2023 09:59:46 +0900 Subject: [PATCH 2/2] check HasString --- testdata/fuzz/FuzzNewXMLFile/ff4e319721ef52a0 | 2 ++ xml.go | 9 +++++++++ 2 files changed, 11 insertions(+) create mode 100644 testdata/fuzz/FuzzNewXMLFile/ff4e319721ef52a0 diff --git a/testdata/fuzz/FuzzNewXMLFile/ff4e319721ef52a0 b/testdata/fuzz/FuzzNewXMLFile/ff4e319721ef52a0 new file mode 100644 index 0000000..50b9c0c --- /dev/null +++ b/testdata/fuzz/FuzzNewXMLFile/ff4e319721ef52a0 @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\x03\x00\b\x00T\v\x00\x00\x01\x00\x1c\x00\x94\x05\x00\x00\"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x004\x00\x00\x00@\x00\x00\x00N\x00\x00\x00Z\x00\x00\x00r\x00\x00\x00\x98\x00\x00\x00\xaa\x00\x00\x00\x02\x01\x00\x00\x06\x01\x00\x00\x18\x01\x00\x00,\x01\x00\x00h\x01\x00\x00t\x01\x00\x00\x96\x01\x00\x00\xcc\x01\x00\x00\b\x02\x00\x00Z\x02\x00\x00\x94\x02\x00\x00\xe6\x02\x00\x00(\x03\x00\x00B\x03\x00\x00^\x03\x00\x00\x90\x03\x00\x00\xa4\x03\x00\x00\xca\x03\x00\x00\xe8\x03\x00\x00\xf8\x03\x00\x000\x04\x00\x00D\x04\x00\x00\x88\x04\x00\x00\xa2\x04\x00\x00\xc4\x04\x00\x00\v\x00v\x00e\x00r\x00s\x00i\x00o\x00n\x00N\x00a\x00m\x00e\x00\x00\x00\v\x00v\x00e\x00r\x00s\x00i\x00o\x00n\x00C\x00o\x00d\x00e\x00\x00\x00\x04\x00n\x00a\x00m\x00e\x00\x00\x00\x05\x00l\x00a\x00b\x00e\x00l\x00\x00\x00\x04\x00i\x00c\x00o\x00n\x00\x00\x00\n\x00d\x00e\x00b\x00u\x00g\x00g\x00a\x00b\x00l\x00e\x00\x00\x00\x11\x00s\x00c\x00r\x00e\x00e\x00n\x00O\x00r\x00i\x00e\x00n\x00t\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\a\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00\x00\x00*\x00h\x00t\x00t\x00p\x00:\x00/\x00/\x00s\x00c\x00h\x00e\x00m\x00a\x00s\x00.\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00c\x00o\x00m\x00/\x00a\x00p\x00k\x00/\x00r\x00e\x00s\x00/\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00\x00\x00\x00\x00\x00\x00\a\x00p\x00a\x00c\x00k\x00a\x00g\x00e\x00\x00\x00\b\x00m\x00a\x00n\x00i\x00f\x00e\x00s\x00t\x00\x00\x00\x1c\x00n\x00e\x00t\x00.\x00s\x00o\x00r\x00a\x00b\x00l\x00u\x00e\x00.\x00s\x00h\x00o\x00g\x00o\x00.\x00F\x00W\x00M\x00e\x00a\x00s\x00u\x00r\x00e\x00\x00\x00\x04\x00\xc60\xb90\xc80Hr\x00\x00\x0f\x00u\x00s\x00e\x00s\x00-\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00\x00\x00\x19\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00C\x00A\x00M\x00E\x00R\x00A\x00\x00\x00\x1c\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00W\x00A\x00K\x00E\x00_\x00L\x00O\x00C\x00K\x00\x00\x00'\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00A\x00C\x00C\x00E\x00S\x00S\x00_\x00F\x00I\x00N\x00E\x00_\x00L\x00O\x00C\x00A\x00T\x00I\x00O\x00N\x00\x00\x00\x1b\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00I\x00N\x00T\x00E\x00R\x00N\x00E\x00T\x00\x00\x00'\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00A\x00C\x00C\x00E\x00S\x00S\x00_\x00M\x00O\x00C\x00K\x00_\x00L\x00O\x00C\x00A\x00T\x00I\x00O\x00N\x00\x00\x00\x1f\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00p\x00e\x00r\x00m\x00i\x00s\x00s\x00i\x00o\x00n\x00.\x00R\x00E\x00C\x00O\x00R\x00D\x00_\x00A\x00U\x00D\x00I\x00O\x00\x00\x00\v\x00a\x00p\x00p\x00l\x00i\x00c\x00a\x00t\x00i\x00o\x00n\x00\x00\x00\f\x00u\x00s\x00e\x00s\x00-\x00l\x00i\x00b\x00r\x00a\x00r\x00y\x00\x00\x00\x17\x00c\x00o\x00m\x00.\x00g\x00o\x00o\x00g\x00l\x00e\x00.\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00m\x00a\x00p\x00s\x00\x00\x00\b\x00a\x00c\x00t\x00i\x00v\x00i\x00t\x00y\x00\x00\x00\x11\x00F\x00W\x00M\x00e\x00a\x00s\x00u\x00r\x00e\x00A\x00c\x00t\x00i\x00v\x00i\x00t\x00y\x00\x00\x00\r\x00i\x00n\x00t\x00e\x00n\x00t\x00-\x00f\x00i\x00l\x00t\x00e\x00r\x00\x00\x00\x06\x00a\x00c\x00t\x00i\x00o\x00n\x00\x00\x00\x1a\x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00i\x00n\x00t\x00e\x00n\x00t\x00.\x00a\x00c\x00t\x00i\x00o\x00n\x00.\x00M\x00A\x00I\x00N\x00\x00\x00\b\x00c\x00a\x00t\x00e\x00g\x00o\x00r\x00y\x00\x00\x00 \x00a\x00n\x00d\x00r\x00o\x00i\x00d\x00.\x00i\x00n\x00t\x00e\x00n\x00t\x00.\x00c\x00a\x00t\x00e\x00g\x00o\x00r\x00y\x00.\x00L\x00A\x00U\x00N\x00C\x00H\x00E\x00R\x00\x00\x00\v\x00M\x00a\x00p\x00A\x00c\x00t\x00i\x00v\x00i\x00t\x00y\x00\x00\x00\x0f\x00S\x00e\x00t\x00t\x00i\x00n\x00g\x00A\x00c\x00t\x00i\x00v\x00i\x00t\x00y\x00\x00\x00\x14\x00P\x00l\x00a\x00c\x00e\x00S\x00e\x00t\x00t\x00i\x00n\x00g\x00A\x00c\x00t\x00i\x00v\x00i\x00t\x00y\x00\x00\x00\x80\x01\b\x00$\x00\x00\x00\x1c\x02\x01\x01\x1b\x02\x01\x01\x03\x00\x01\x01\x01\x00\x01\x01\x02\x00\x01\x01\x0f\x00\x01\x01\x1e\x00\x01\x01\x00\x01\x10\x00\x18\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\a\x00\x00\x00\b\x00\x00\x00\x02\x01\x10\x00`\x00\x00\x00\x02\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\v\x00\x00\x00\x14\x00\x14\x00\x03\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x01\x00\x00\x00\xff\xff\xff\xff\b\x00\x00\x10\x01\x00\x00\x00\b\x00\x00\x00\x00\x00\x00\x00\r\x00\x00\x00\b\x00\x00\x03\r\x00\x00\x00\xff\xff\xff\xff\n\x00\x00\x00\f\x00\x00\x00\b\x00\x00\x03\f\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\x04\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x0f\x00\x00\x00\b\x00\x00\x03\x0f\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x04\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\b\x00\x00\x03\x10\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\x06\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\b\x00\x00\x03\x11\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x06\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x12\x00\x00\x00\b\x00\x00\x03\x12\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\b\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x13\x00\x00\x00\b\x00\x00\x03\x13\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\b\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\t\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x14\x00\x00\x00\b\x00\x00\x03\x14\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\t\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\x00\x00\x02\x01\x10\x00`\x00\x00\x00\v\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x15\x00\x00\x00\x14\x00\x14\x00\x03\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x03\x00\x00\x00\xff\xff\xff\xff\b\x00\x00\x01\x00\x00\x04\x7f\b\x00\x00\x00\x04\x00\x00\x00\xff\xff\xff\xff\b\x00\x00\x01\x00\x00\x02\x7f\b\x00\x00\x00\x05\x00\x00\x00\xff\xff\xff\xff\b\x00\x00\x12\x00\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\f\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x17\x00\x00\x00\b\x00\x00\x03\x17\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\f\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x00\x00\x02\x01\x10\x00L\x00\x00\x00\r\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x00\x00\x14\x00\x14\x00\x02\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x19\x00\x00\x00\b\x00\x00\x03\x19\x00\x00\x00\b\x00\x00\x00\x06\x00\x00\x00\xff\xff\xff\xff\b\x00\x00\x10\x00\x00\x00\x00\x02\x01\x10\x00$\x00\x00\x00\x0f\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x00\x00\x14\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\x10\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1b\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x1c\x00\x00\x00\b\x00\x00\x03\x1c\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x10\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1b\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\x11\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x1e\x00\x00\x00\b\x00\x00\x03\x1e\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x11\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x12\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1a\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x13\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x00\x00\x02\x01\x10\x00L\x00\x00\x00\x14\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x00\x00\x14\x00\x14\x00\x02\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00\x1f\x00\x00\x00\b\x00\x00\x03\x1f\x00\x00\x00\b\x00\x00\x00\x06\x00\x00\x05!\x05\x00\xff\xff\xff\xff\b\x00\x00\x10\x00\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x15\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\x16\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00 \x00\x00\x00\b\x00\x00\x03 \x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x17\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x00\x00\x02\x01\x10\x008\x00\x00\x00\x18\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x00\x00\x14\x00\x14\x00\x01\x00\x00\x00\x00\x00\x00\x00\b\x00\x00\x00\x02\x00\x00\x00!\x00\x00\x00\b\x00\x00\x03!\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x19\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x1a\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x15\x00\x00\x00\x03\x01\x10\x00\x18\x00\x00\x00\x1c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\v\x00\x00\x00\x01\x01\x10\x00\x18\x00\x00\x00\x1c\x00\x00\x00\xff\xff\xff\xff\a\x00\x00\x00\b\x00\x00\x00") diff --git a/xml.go b/xml.go index f827eb5..0882762 100644 --- a/xml.go +++ b/xml.go @@ -267,6 +267,12 @@ func (f *XMLFile) readStartElement(sr *io.SectionReader) error { // output XML namespaces if f.notPrecessedNS != nil { for uri, prefix := range f.notPrecessedNS { + if !f.HasString(uri) { + return &InvalidReferenceError{Ref: uri} + } + if !f.HasString(prefix) { + return &InvalidReferenceError{Ref: prefix} + } fmt.Fprintf(&f.xmlBuffer, " xmlns:%s=\"", f.GetString(prefix)) xml.Escape(&f.xmlBuffer, []byte(f.GetString(uri))) fmt.Fprint(&f.xmlBuffer, "\"") @@ -285,6 +291,9 @@ func (f *XMLFile) readStartElement(sr *io.SectionReader) error { var value string if attr.RawValue != NilResStringPoolRef { + if !f.HasString(attr.RawValue) { + return &InvalidReferenceError{Ref: attr.RawValue} + } value = f.GetString(attr.RawValue) } else { data := attr.TypedValue.Data