mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-16 21:18:06 +02:00
In debug builds with "embedded tests" enabled, these will automatically be used as input for the message-internals test. Some of the messages themselves are output from a fuzzer, others are simplifications to include only one reason for lack of validity per message. I've included an annotated hex-dump for each message here, but the dbus test suite doesn't currently know how to convert hex to binary, so I've also committed the corresponding binary. See the comment at the top of each hex-dump for how to create the binary version (which requires the xxd tool shipped with vim). It would be nice for the dbus test suite to be able to convert the annotated hex-dump to binary, either at build-time with a Python script or at runtime by loading the text file and decoding the hex, but I don't want to block on that for dbus/dbus#413 and dbus/dbus#418. Reproduces: https://gitlab.freedesktop.org/dbus/dbus/-/issues/413 Reproduces: https://gitlab.freedesktop.org/dbus/dbus/-/issues/418 Signed-off-by: Simon McVittie <smcv@collabora.com>
47 lines
2.2 KiB
Text
47 lines
2.2 KiB
Text
# Copyright 2022 Evgeny Vereshchagin
|
|
# Copyright 2022 Collabora Ltd.
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
# This is an annotated hex-dump of a message originally generated by a
|
|
# fuzzer.
|
|
#
|
|
# To output as binary:
|
|
# sed -e 's/#.*//' test/data/invalid-messages/issue418.message-raw.hex |
|
|
# xxd -p -r - test/data/invalid-messages/issue418.message-raw
|
|
#
|
|
# The rather non-specific name is because this message is invalid in at
|
|
# least three separate ways:
|
|
#
|
|
# - parentheses and curly brackets in the signature are not nested correctly
|
|
# - the signature of one header field is of zero length
|
|
# - the signature of another header field is longer than the message
|
|
#
|
|
# mis-nested-sig.message-raw.hex,
|
|
# truncated-variant-sig.message-raw.hex,
|
|
# zero-length-variant-sig.message-raw.hex are simplified versions of this
|
|
# message with only one of those reasons to be invalid.
|
|
|
|
# Offset % 0x10:
|
|
# 0001 0203 0405 0607 0809 0a0b 0c0d 0e0f
|
|
|
|
6c # little-endian
|
|
8f # an undefined message type
|
|
28 # flags
|
|
01 # major protocol version 1
|
|
0000 0000 # message body is 0 bytes
|
|
7b22 0008 # serial number 0x0800227b
|
|
1800 0000 # header is an array of 0x18 bytes of struct (yv)
|
|
fd # header field code 0xfd (an undefined header)
|
|
15 # signature is 0x15 = 21 bytes
|
|
2874 617b 7961 7b64 617b 7961 7b79 # "(ta{ya{da{ya{y"...
|
|
6171 7d7d 7d29 7d00 # "aq}}})}" \0
|
|
0000 0000 0000 0000 # padding to 8-byte boundary
|
|
0c # header field code 0x0c
|
|
00 # signature is zero-length (invalid!)
|
|
00 # "" \0
|
|
00 0000 0000 0000 0000 0000 0000 # padding
|
|
fe # header field code 0xfe
|
|
ff # signature is 0xff = 255 bytes
|
|
0000 # truncated (invalid!)
|
|
|
|
#sha1 e5d2bc02229d93ffdd7f589b7123adb3902ee981
|