opnsense/suricata: catch EADDRNOTAVAIL and EINVAL for divert
While an interface has no IPv4 address, for instance while rc.linkup
reconfigures it on an attached event, writing a diverted packet back
can fail in three ways that are not caught yet:
o A packet diverted on input carries the name of its receive
interface, cut to seven characters, and the first IPv4 address of
that interface. The kernel looks the interface up by that name and
then by that address. "vlan0.0.6" is cut to "vlan0.0", which matches
no interface, so the address lookup decides and fails with
EADDRNOTAVAIL.
o A packet diverted on output, or on input while its interface had no
IPv4 address (it then carries no address and is written back as an
outbound one), goes to ip_output(), where ARP finds no IPv4 address
on the interface to send the request from and returns EADDRNOTAVAIL.
o In the same path ip_output() has already chosen the interface, but
[12 lines not shown]
french/py-grammalecte-fr: Update to 2.3.0
The bundled bottle 0.12.18 of 1.11.0 imports inspect.getargspec, which
was removed in Python 3.11, so grammalecte-server.py fails to start.
2.3.0 bundles bottle 0.13.4, which no longer uses inspect.getargspec or
the cgi module, and fixes grammalecte-server.py (its shebang and a
sys.version string compare).
www.dicollecte.org no longer serves the distfile (it returns a small
non-zip page); fetch from www.grammalecte.net, which has 2.3.0.
While here, add concurrent to USE_PYTHON (bin/grammalecte-cli.py,
bin/grammalecte-server.py) and set NO_ARCH (pure Python).
Switch to USE_PYTHON=pep517 (the package metadata becomes dist-info).
PR: 299902
[Clang][ABI][X86] Don't return _BitInt as {i64, i64} (#236112)
`_BitInt(N)` for N <= 64 gets returned as `iN`, while for 64 < N < 128
it's returned as `{i64, i64}`, before it becomes `i128` again for N=128.
This changes the ABI code to always use `iN` for N <= 128 (larger types
get passed in memory, not directly).
This doesn't change the actual ABI (returned as two registers, high bits
unspecified), just simplifies how it is represented in IR.
Worth noting that the case of `_BitInt` inside a struct currently
produces different results between Clang and the ABI library. I will
address this in a followup. The argument case will also be handled
separately.
This is a followup to https://github.com/llvm/llvm-project/pull/234872,
which handled the N < 64 case.
[ValueTypes] Implement `getEVTString` in terms of `print` (#236276)
Many calls need to allocate, so add a version that doesn't require this
and use it in places where streams are already used.
py-aioquic: updated to 1.7.0
1.7.0
* Migrate clients to the server's preferred address, as :rfc:`9000` allows.
.. note::
If you drive :class:`~aioquic.quic.connection.QuicConnection` with your
own I/O, you must send each datagram to the address returned alongside
it by ``datagrams_to_send()``. That address may now differ from the one
passed to ``connect()``, so a connected UDP socket or a tunnel with a
single fixed destination no longer works.
* Add :meth:`~aioquic.quic.connection.QuicConnection.get_peer_address`, which
returns the address datagrams are currently sent to. It can change when
either endpoint migrates.
* Improve path validation and connection migration as :rfc:`9000` requires:
[58 lines not shown]
py-pylsqpack: updated to 1.0.0
1.0.0
* Adopt semantic versioning.
* Add :meth:`Decoder.cancel_stream` to cancel decoding for a reset or
abandoned stream.
* Grow the encoder's buffers on demand instead of capping them at 4 kB, so
that large header blocks (e.g. with large cookies) no longer fail to encode.
* Allocate the decoder's buffers using Python's memory allocator, making them
visible to :mod:`tracemalloc`.
* Update vendored `ls-qpack`_ from version 2.6.2 to 2.7.0, which brings:
* a fix for decoding header blocks when the encoder selects a dynamic table
capacity lower than the maximum,
* fixes for a use-after-free and a double-free,
* stricter validation of encoder and decoder stream instructions, header
lengths and Huffman padding.
[Clang] use `SubstConstraintExpr` instead of `SubstExpr` in `Sema::BuildExprRequirement` (#236286)
This fixed a regression introduced since the last rewrite of concepts, mirroring 24df1d13d9090e075b162bf81d1a34a408e54924.
[X86] Add _MM_FROUND_TO_NEAREST_TIES_EVEN clang codegen test coverage (#202063)
The static rounding mode for X86 intrinsics that produce floating-point
results should use the macro `_MM_FROUND_TO_NEAREST_TIES_EVEN` rather
than `MM_FROUND_TO_NEAREST_INT`.
See also:
https://github.com/llvm/llvm-project/pull/99691#issuecomment-2245842818
[libc][math] Implement double precision cosh correctly rounded to all rounding modes. (#235181)
Use shared `exp(x) +- exp(-x)` evaluations with `sinh` from
https://github.com/llvm/llvm-project/pull/235097.
Assisted-by: Gemini for analysis and refactoring.
[libc][math] Implement double precision sinh correctly rounded for all rounding modes. (#235097)
- Extend even/odd polynomial evalutions of exp(x) +- exp(-x) from single
precision to double-double and 128-bit fixed point.
- Optimize range reduction using the trick from previous exp
implementation, combining with the new fp-bitwise operations, and
reapply it to exp and exp2.
Assisted-by: Gemini for analysis and refactoring.
wip/jgmenu: import jgmenu-4.7.0
Packaged by J. Scott Heppler, in private mail.
jgmenu is a simple, independent and contemporary-looking X11 menu, designed
for scripting, modding and tweaking.
It is hackable and has a simple code base. It does not depend on any toolkits
such as GTK and Qt, but uses cairo and pango to render the menu.
It can optionally use some appearance settings from XSettings, tint2 and GTK.