diff --git a/src/core/service.c b/src/core/service.c index df36019f623..23a5bcd1c42 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -396,6 +396,9 @@ static void service_done(Unit *u) { s->bus_name_owner = mfree(s->bus_name_owner); + s->usb_function_descriptors = mfree(s->usb_function_descriptors); + s->usb_function_strings = mfree(s->usb_function_strings); + service_close_socket_fd(s); s->peer = socket_peer_unref(s->peer); diff --git a/test/fuzz-regressions/fuzz-unit-file/oss-fuzz-6892 b/test/fuzz-regressions/fuzz-unit-file/oss-fuzz-6892 new file mode 100644 index 00000000000..31f746d034a --- /dev/null +++ b/test/fuzz-regressions/fuzz-unit-file/oss-fuzz-6892 @@ -0,0 +1,3 @@ +service +[Service] +USBFunctionStrings=/ \ No newline at end of file diff --git a/test/fuzz-regressions/meson.build b/test/fuzz-regressions/meson.build index b1dfc39675c..f9c8e8cd98a 100644 --- a/test/fuzz-regressions/meson.build +++ b/test/fuzz-regressions/meson.build @@ -33,4 +33,5 @@ fuzz_regression_tests = ''' fuzz-unit-file/oss-fuzz-6885 fuzz-unit-file/oss-fuzz-6886 fuzz-unit-file/oss-fuzz-6917 + fuzz-unit-file/oss-fuzz-6892 '''.split()