1man(1)                              dfuzzer                             man(1)
2
3
4

NAME

6       dfuzzer - Tool for fuzz testing processes communicating through D-Bus
7

SYNOPSIS

9       dfuzzer -n BUS_NAME [OTHER_OPTIONS]
10
11
12
13

DESCRIPTION

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

REQUIRED OPTIONS

42       -n BUS_NAME
43           D-Bus name to test.
44
45
46
47

OTHER OPTIONS

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

EXAMPLES

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

EXIT STATUS

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

SEE ALSO

149       gdbus(1)
150
151
152
153

BUGS

155       No known bugs. Report bugs to mmarhefk@redhat.com.
156
157
158
159

AUTHOR

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