1man(1) dfuzzer man(1)
2
3
4
6 dfuzzer - Tool for fuzz testing processes communicating through D-Bus
7
9 dfuzzer -n BUS_NAME [OTHER_OPTIONS]
10
11
12
13
15 dfuzzer is the D-Bus fuzzer, the tool for fuzz testing processes commu‐
16 nicating through D-Bus. It can be used to test processes connected to
17 both, the session bus and the system bus daemon. The fuzzer works as a
18 client, it first connects to the bus daemon and then it traverses and
19 fuzz tests all the methods provided by a D-Bus service (specified by
20 the -n option - bus name). By default only failures and warnings are
21 printed. Use -v for verbose mode.
22
23 Fuzz tests are performed on methods of a chosen interface(s) and an
24 object(s) for the given bus name. Fuzzer generates random arguments for
25 each method of an interface and calls these methods everytime with dif‐
26 ferent generated arguments.
27
28 dfuzzer is monitoring tested process state and memory usage during fuzz
29 testing. In case tested process crashed or its memory usage is abnor‐
30 mal it is printed on the output of dfuzzer. Fuzzer always prints exit
31 status (see section EXIT STATUS) before exiting.
32
33 When you are getting exceptions (printed only in verbose mode: -v
34 option) like org.freedesktop.DBus.Error.AccessDenied or org.freedesk‐
35 top.DBus.Error.AuthFailed during testing, try to run dfuzzer as root
36 (warning: this is dangerous, proceed with caution).
37
38
39
40
42 -n BUS_NAME
43 D-Bus name to test.
44
45
46
47
49 -V
50 Print dfuzzer version and exit.
51
52 -h
53 Print dfuzzer help and exit.
54
55 -l
56 List all available connection names on both buses.
57
58 -v
59 Enable verbose messages.
60
61 -d
62 Enable debug messages. Implies -v. This option should not be nor‐
63 mally used during testing.
64
65 -s
66 Do not use suppression file. Default behaviour is to use suppres‐
67 sion files in this order (if one doesn't exist next in order is
68 taken for loading suppressions - this way user can define his own
69 file):
70 1. ./dfuzzer.conf
71 2. ~/.dfuzzer.conf
72 3. /etc/dfuzzer.conf
73 Suppression files must be defined in this format:
74 [bus_name_1]
75 method0 description
76 [bus_name_2]
77 method1 description
78 method2 description
79 ...
80 which tells that for example methods method1 and method2 will be
81 skipped when testing bus name bus_name_2.
82
83 -o OBJECT_PATH
84 Optional object path to test. All children objects are traversed.
85
86 -i INTERFACE
87 Interface to test. Requires also -o option.
88
89 -m MEM_LIMIT [in kB]
90 When tested process exceeds this limit, warning is printed on the
91 output. Default value for this limit is 3x process intial memory
92 size. If set memory limit value is less than or equal to process
93 initial memory size, it will be adjusted to the default value (3x
94 process intial memory size).
95
96 -b max_buf_size [in B]
97 Maximum buffer size for generated strings, minimal value for this
98 option is 256 B. Default maximum size is 50000 B ~= 50 kB (the
99 greater the limit, the longer the testing).
100
101 -t METHOD_NAME
102 When this parameter is provided, only method METHOD_NAME is tested.
103 All other methods of an interface are skipped. Requires also -o and
104 -i options.
105
106 -e 'COMMAND'
107 Command/Script to execute after each method call. If command/script
108 finished unsuccessfuly, fail message is printed with its return
109 value.
110
111
112
113
115 List all names on bus:
116 # dfuzzer -l
117
118 Test all methods of GNOME Shell. Be verbose.
119 # dfuzzer -v -n org.gnome.Shell
120
121 Test only method of the given bus name, object path and interface:
122 # dfuzzer -n org.freedesktop.Avahi -o / -i org.freedesktop.Avahi.Server
123 -t GetAlternativeServiceName
124
125 Test all methods of Avahi and be verbose. Redirect all log messages
126 including failures and warnings into avahi.log:
127 # dfuzzer -v -n org.freedesktop.Avahi 2>&1 | tee avahi.log
128
129 Test name org.freedesktop.Avahi, be verbose and do not use suppression
130 file:
131 # dfuzzer -v -s -n org.freedesktop.Avahi
132
133
134
135
137 dfuzzer may return these codes:
138
139 0 testing ended successfuly
140 1 error occured, either internal dfuzzer error
141 or D-Bus related error (-d option to debug)
142 2 testing detected failures (including warnings)
143 3 testing detected only warnings
144
145
146
147
149 gdbus(1)
150
151
152
153
155 No known bugs. Report bugs to mmarhefk@redhat.com.
156
157
158
159
161 Matus Marhefka (mmarhefk@redhat.com)
162 Additional changes by Miroslav Vadkerti (mvadkert@redhat.com)
163
164
165
166
168 2014,2015 Red Hat, Inc.
169
170
171
172dfuzzer 1.4 12 Mar 2015 man(1)