@@ -14,6 +14,7 @@ FAKEDATADIR=fakedata
14
14
CC=gcc
15
15
BUILDDIR=${NETPLANPATH} /_fuzzer_build
16
16
NETPLAN_GENERATE_PATH=${BUILDDIR} /src/generate
17
+ NETPLAN_CONFIGURE_PATH=${BUILDDIR} /src/configure
17
18
18
19
export G_DEBUG=fatal_criticals
19
20
export LD_LIBRARY_PATH=${BUILDDIR} /src
47
48
rm -rf fakeroot fakeroot2
48
49
mkdir -p fakeroot/etc/netplan fakeroot2/etc/netplan
49
50
cp ${yaml} fakeroot/etc/netplan/
50
-
51
- OUTPUT=$( ${NETPLAN_GENERATE_PATH} --root-dir fakeroot 2>&1 )
51
+ GENERATOR_DIR=$( pwd) /fakeroot/run/systemd/generate
52
+
53
+ OUTPUT=$( systemd-run --user --pty --collect \
54
+ " --property=ReadOnlyPaths=/" \
55
+ " --property=ReadWritePaths=${GENERATOR_DIR} " \
56
+ " --property=ReadWritePaths=${GENERATOR_DIR} .early" \
57
+ " --property=ReadWritePaths=${GENERATOR_DIR} .late" \
58
+ ${NETPLAN_GENERATE_PATH} --root-dir fakeroot \
59
+ " ${GENERATOR_DIR} " " ${GENERATOR_DIR} .early" " ${GENERATOR_DIR} .late" 2>&1 )
52
60
code=$?
53
61
if [ $code -eq 139 ] || [ $code -eq 245 ] || [ $code -eq 133 ]
54
62
then
75
83
echo " YAML: ${yaml} " >> " ${RESULTS_DIR} " /generate.log
76
84
echo " ${OUTPUT} " >> " ${RESULTS_DIR} " /generate.log
77
85
86
+ OUTPUT=$( ${NETPLAN_CONFIGURE_PATH} --root-dir fakeroot 2>&1 )
87
+ code=$?
88
+ if [ $code -eq 139 ] || [ $code -eq 245 ] || [ $code -eq 133 ]
89
+ then
90
+ dir=${RESULTS_DIR} /crash_$( date " +%Y%m%d%H.%N" )
91
+ echo " CONFIGURE CRASHED: ${OUTPUT} "
92
+ echo " YAML THE CAUSED THE CRASH:"
93
+ cat ${yaml}
94
+ echo " CONFIGURE: Saving crash to ${dir} "
95
+ cp -r fakeroot ${dir}
96
+ error=1
97
+ fi
98
+
99
+ if grep ' detected memory leaks' <<< " $OUTPUT" > /dev/null
100
+ then
101
+ dir=${RESULTS_DIR} /crash_$( date " +%Y%m%d%H.%N" )
102
+ echo " CONFIGURE MEMORY LEAK DETECTED: ${OUTPUT} "
103
+ echo " YAML THE CAUSED THE MEMORY LEAK:"
104
+ cat ${yaml}
105
+ echo " CONFIGURE: Saving memory leak to ${dir} "
106
+ cp -r fakeroot ${dir}
107
+ error=1
108
+ fi
109
+
110
+ echo " ${OUTPUT} " >> " ${RESULTS_DIR} " /generate.log
111
+
112
+ GENERATOR_DIR=$( pwd) /fakeroot2/run/systemd/generate
78
113
if [ -d fakeroot/run ] && [ -d fakeroot/run/NetworkManager ]
79
114
then
80
115
for keyfile in $( find fakeroot/run/NetworkManager/system-connections/ -type f 2> /dev/null)
92
127
fi
93
128
done
94
129
95
- OUTPUT=$( ${NETPLAN_GENERATE_PATH} --root-dir fakeroot2 2>&1 )
130
+ OUTPUT=$( systemd-run --user --pty --collect \
131
+ " --property=ReadOnlyPaths=/" \
132
+ " --property=ReadWritePaths=${GENERATOR_DIR} " \
133
+ " --property=ReadWritePaths=${GENERATOR_DIR} .early" \
134
+ " --property=ReadWritePaths=${GENERATOR_DIR} .late" \
135
+ ${NETPLAN_GENERATE_PATH} --root-dir fakeroot2 \
136
+ " ${GENERATOR_DIR} " " ${GENERATOR_DIR} .early" " ${GENERATOR_DIR} .late" 2>&1 )
96
137
code=$?
97
138
if [ $code -eq 139 ] || [ $code -eq 245 ] || [ $code -eq 133 ]
98
139
then
113
154
fi
114
155
echo " ${OUTPUT} " >> " ${RESULTS_DIR} " /generate_from_keyfile.log
115
156
116
- fi
157
+ OUTPUT=$( ${NETPLAN_CONFIGURE_PATH} --root-dir fakeroot2 2>&1 )
158
+ code=$?
159
+ if [ $code -eq 139 ] || [ $code -eq 245 ] || [ $code -eq 133 ]
160
+ then
161
+ dir=${RESULTS_DIR} /generate_from_keyfile_$( date " +%Y%m%d%H.%N" )
162
+ echo " CONFIGURE FROM KEYFILE GENERATED YAMLS CRASHED: ${OUTPUT} "
163
+ echo " CONFIGURE: Saving crash to ${dir} "
164
+ cp -r fakeroot2 ${dir}
165
+ error=1
166
+ fi
117
167
168
+ if grep ' detected memory leaks' <<< " $OUTPUT" > /dev/null
169
+ then
170
+ dir=${RESULTS_DIR} /generate_from_keyfile_$( date " +%Y%m%d%H.%N" )
171
+ echo " CONFIGURE FROM KEYFILE GENERATED YAML MEMORY LEAK DETECTED: ${OUTPUT} "
172
+ echo " CONFIGURE: Saving memory leak to ${dir} "
173
+ cp -r fakeroot2 ${dir}
174
+ error=1
175
+ fi
176
+ echo " ${OUTPUT} " >> " ${RESULTS_DIR} " /generate_from_keyfile.log
177
+ fi
118
178
done
119
179
120
180
echo " $( date) - Done"
121
181
122
182
echo " $( date) - Running netplan generate -i"
123
183
184
+ GENERATOR_DIR=$( pwd) /fakeroot3/run/systemd/generate
124
185
for yaml in ${FAKEDATADIR} /* .yaml
125
186
do
126
187
rm -rf fakeroot3
127
188
mkdir -p fakeroot3/etc/netplan
128
189
cp ${yaml} fakeroot3/etc/netplan/
129
190
130
- OUTPUT=$( ${NETPLAN_GENERATE_PATH} --root-dir fakeroot3 -i 2>&1 )
131
- code=$?
191
+ OUTPUT=$( systemd-run --user --pty --collect \
192
+ " --property=ReadOnlyPaths=/" \
193
+ " --property=ReadWritePaths=${GENERATOR_DIR} " \
194
+ " --property=ReadWritePaths=${GENERATOR_DIR} .early" \
195
+ " --property=ReadWritePaths=${GENERATOR_DIR} .late" \
196
+ ${NETPLAN_GENERATE_PATH} --root-dir fakeroot3 \
197
+ " ${GENERATOR_DIR} " " ${GENERATOR_DIR} .early" " ${GENERATOR_DIR} .late" 2>&1 ) code=$?
132
198
if [ $code -eq 139 ] || [ $code -eq 245 ] || [ $code -eq 133 ]
133
199
then
134
200
echo " GENERATE --ignore-errors CRASHED"
143
209
error=1
144
210
fi
145
211
212
+ OUTPUT=$( ${NETPLAN_CONFIGURE_PATH} --root-dir fakeroot3 -i 2>&1 )
213
+ code=$?
214
+ if [ $code -eq 139 ] || [ $code -eq 245 ] || [ $code -eq 133 ]
215
+ then
216
+ echo " CONFIGURE --ignore-errors CRASHED"
217
+ cat ${yaml}
218
+ error=1
219
+ fi
220
+
221
+ if grep ' detected memory leaks' <<< " $OUTPUT" > /dev/null
222
+ then
223
+ echo " CONFIGURE --ignore-errors MEMORY LEAK DETECTED"
224
+ cat ${yaml}
225
+ error=1
226
+ fi
146
227
done
147
228
148
229
echo " $( date) - Done"
0 commit comments