| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Queries with start > last item would return one item, because there's
some boundary condition in binary_search().
This is here fixed by always applying filters that omit items outside
the requested range.
See also 2374c7665d0b
|
|\| |
|
| |
| |
| |
| | |
Otherwise it warns about it being missing, even if it exists.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes two problems:
1) Account invites that were created with a specific username were not
in fact restricted to that username.
2) Password reset invites were not restricted to resetting passwords,
but could be used to create an arbitrary new account if the client
or registration frontend (e.g. mod_invites_register_web) doesn't
handle/enforce the username.
This new validation ensures that registrations and resets are always for the
username specified in the invitation.
|
|\| |
|
| | |
|
| | |
|
|\| |
|
| |
| |
| |
| | |
Make `make lint` happy again
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Somehow a user ended up with duplicate data preventing creation of the
new unique index needed for UPSERT (see 3ec48555b773).
This should eventually self-heal #1918 if the duplicate data is replaced
by the older DELETE + INSERT method.
Without any index at all, it will be slower.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes the problem that an un-bracketed IPv6 address will not match
the first pattern (since it matches brackets) and instead the first
decimal digits will match the pattern meant to strip port numbers from
IPv4 addresses, e.g. 2001:db8::1 --> 2000
This pattern instead matches enough of a regular IPv4 address to make an
IPv6 address fall back to the last case.
|
| |
| |
| |
| |
| |
| |
| | |
This is meant as a way to diagnose e.g. issues creating indices.
It would have been nice to capture e.g. PostgreSQL notices, but LuaDBI
would need support for this first, see https://github.com/mwild1/luadbi/issues/62
|
| |
| |
| |
| |
| |
| |
| | |
This should ensure that e.g. failure to load LuaSQLite3 is not logged
unless it is needed, since module failures are very verbose.
Closes #1919
|
|\| |
|
| | |
|
| |
| |
| |
| | |
some candidates were filtered
|
| | |
|
| | |
|
|\| |
|
| | |
|
|\| |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
This information can now be retrieved on-demand using the debug:cert_index()
command, so we don't need to log it after every scan (it is rather verbose).
|
|\| |
|
| | |
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| | |
These tests help to verify that various configurations translate into the
expected running TLS setups. Specifically right now we are checking the
correct certificate is served.
|
|\| |
|
| | |
|
| |
| |
| |
| |
| | |
This fixes (another) issue with the fix in 4ea7bd7325be, where it no longer
checked the automatic cert index for an appropriate certificate.
|
|\| |
|
| | |
|
|\| |
|
| |
| |
| |
| |
| | |
Otherwise it takes a lot longer to time out Direct TLS connections than
TCP / STARTTLS connections.
|
|\| |
|
| |
| |
| |
| |
| | |
This was an oversight in the fix for #1915 in commit 4ea7bd7325be (though it
seems commit 7e9ebdc75ce4 was the first to introduce this bug).
|
|\| |
|
| |
| |
| |
| |
| |
| | |
Enabling at least one of the ssl.verifyext modes enables a callback that
collects all the errors, which are used by mod_s2s to report better
problem descriptions.
|
| |
| |
| |
| |
| |
| | |
Setting ssl.verifyext enables a callback that collects all errors from
every layer of the certificate chain. Otherwise a single string is
returned, which we did not handle before.
|
|\| |
|
| |
| |
| |
| | |
https://github.com/openssl/openssl/commit/ade08735f9d0ac85d611c5abee8a1df651bbca13
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(fixes #1916) (thanks Damian, Zash)
Various options in Prosody allow control over the behaviour of the certificate
verification process For example, some deployments choose to allow falling
back to traditional "dialback" authentication (XEP-0220), while others verify
via DANE, hard-coded fingerprints, or other custom plugins.
Implementing this flexibility requires us to override OpenSSL's default
certificate verification, to allow Prosody to verify the certificate itself,
apply custom policies and make decisions based on the outcome.
To enable our custom logic, we have to suppress OpenSSL's default behaviour of
aborting the connection with a TLS alert message. With LuaSec, this can be
achieved by using the verifyext "lsec_continue" flag.
We also need to use the lsec_ignore_purpose flag, because XMPP s2s uses server
certificates as "client" certificates (for mutual TLS verification in outgoing
s2s connections).
Commit 99d2100d2918 moved these settings out of the defaults and into mod_s2s,
because we only really need these changes for s2s, and they should be opt-in,
rather than automatically applied to all TLS services we offer.
That commit was incomplete, because it only added the flags for incoming
direct TLS connections. StartTLS connections are handled by mod_tls, which was
not applying the lsec_* flags. It previously worked because they were already
in the defaults.
This resulted in incoming s2s connections with "invalid" certificates being
aborted early by OpenSSL, even if settings such as `s2s_secure_auth = false`
or DANE were present in the config.
Outgoing s2s connections inherit verify "none" from the defaults, which means
OpenSSL will receive the cert but will not terminate the connection when it is
deemed invalid. This means we don't need lsec_continue there, and we also
don't need lsec_ignore_purpose (because the remote peer is a "server").
Wondering why we can't just use verify "none" for incoming s2s? It's because
in that mode, OpenSSL won't request a certificate from the peer for incoming
connections. Setting verify "peer" is how you ask OpenSSL to request a
certificate from the client, but also what triggers its built-in verification.
|
| | |
|
|\| |
|