commit | 26be815b86e8d49add8c9a8b320239b9594ff03d | [log] [tgz] |
---|---|---|
author | Akihiko Odaki <akihiko.odaki@daynix.com> | Mon Jan 30 14:56:02 2023 +0900 |
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | Tue May 16 20:04:45 2023 +0200 |
tree | 90e345cb3c73cf326a125b7bed746bf85fb57d96 | |
parent | fc5eaaf6f68d5cff76468c63984c33c4fb51506d [diff] |
ip: Enforce strict aliasing Sometimes ipq were casted to ipasfrag, and the original and casted pointer were used simultaneously in ip_reass(). GCC 12.1.0 assumes these pointers are not aliases, and therefore incorrectly the pointed data will not be modified when it is actually modified with another pointer. To fix this problem, introduce a new type "ipas", which is a universal type denoting an entry in the assembly queue and contains union for specialization as queue head (frequently referred as "q" or "ipq" in the source code) or IP fragment ("f" or "ipf"). This bug was found by Alexander Bulekov when fuzzing QEMU: https://patchew.org/QEMU/20230129053316.1071513-1-alxndr@bu.edu/ The fixed test case is: fuzz/crash_449dd4ad72212627fe3245c875f79a7033cc5382 Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
libslirp is a user-mode networking library used by virtual machines, containers or various tools.
A C compiler, meson and glib2 development libraries.
(see also .gitlab-ci.yml DEPS variable for the list of dependencies on Fedora)
You may build and install the shared library with meson:
meson build ninja -C build install
And configure QEMU with --enable-slirp=system to link against it.
(QEMU may build with the submodule static library using --enable-slirp=git)
Unfortunately, there are no automated tests available.
You may run QEMU -net user
linked with your development version.
Feel free to open issues on the project issues page.
You may clone the gitlab project and create a merge request.
Contributing with gitlab allows gitlab workflow, tracking issues, running CI etc.
Alternatively, you may send patches to slirp@lists.freedesktop.org mailing list.
We intend to use libtool's versioning for the shared libraries and use SemVer for project versions.
For the versions available, see the tags on this repository.
See the COPYRIGHT file for details.