-
-
There is a leak here due to a cyclic reference. The
PurpleConnection
has a data reference toPurpleIRCv3SASLData
and that has a reference to the parent connection.The data reference is never removed, so we have a cycle whenever the connection manager drops the connection. And since the
PurpleIRCv3SASLData
is not a GObject, it won't be considered for cyclic references AFAIK.As noted in code comment, the
PurpleIRCv3SASLData
data reference should at least be cleared on success/failure of the SASL authentication. There's not really anywhere to comment it, but it should also be cleared when the connection is disconnected. -
As all these handlers are registered regardless of whether SASL is requested, they all need to check whether fetching
PURPLE_IRCV3_SASL_DATA_KEY
returns a valid pointer (if they use it), in case of a buggy/malicious server that sends any of these before a SASL request. -
-
-
-
-
-
-
-
This needs to replace with a
" "
or else you will end up withFOO BAR BAZ
->FOOBAZ
when replacingBAR
. -
-
-
-
-
-
Probably should set this key to
NULL
so that the gsasl data can be cleaned up, as it's not used after auth. -
Implement SASL for IRCv3 using GSASL
Review Request #2185 — Created Jan. 13, 2023 and submitted
Right now we really only tested PLAIN but SCRAM _might_ work as well as external. But we'll need to connect to an external server to test that stuff as it's really a bit of work to get set up locally.
Connected to a local ergo instance and verified everything there using the PLAIN mechanism.
Summary | ID |
---|---|
b150f9e6e34891291408c2bfd7716885ab27f52d |
Description | From | Last Updated |
---|---|---|
There is a leak here due to a cyclic reference. The PurpleConnection has a data reference to PurpleIRCv3SASLData and that … |
QuLogic | |
As all these handlers are registered regardless of whether SASL is requested, they all need to check whether fetching PURPLE_IRCV3_SASL_DATA_KEY … |
QuLogic | |
This should probably default to GSASL_NO_CALLBACK as it would be unimplemented. |
QuLogic | |
an admin |
QuLogic | |
s/have/with/ |
QuLogic | |
s/mechanism> '/mechanism> `/ |
QuLogic | |
s/means would/means we would/ |
QuLogic | |
s/which would leave/leaving/ |
QuLogic | |
s/`E/` E/ |
QuLogic | |
This needs to replace with a " " or else you will end up with FOO BAR BAZ -> FOOBAZ … |
QuLogic | |
In libpurple/protocols/ircv3/purpleircv3connection.c:280, getting this defaults to TRUE. |
QuLogic | |
Needs to be " " here as well. |
QuLogic | |
This duplicates what's done in purple_ircv3_sasl_attempt_mechanism. |
QuLogic | |
Server |
QuLogic | |
Not unused. |
QuLogic | |
Probably should set this key to NULL so that the gsasl data can be cleaned up, as it's not used … |
QuLogic | |
Possibly delete it here as well if we've tried all mechanisms. |
QuLogic |
- Change Summary:
-
Address all the things! (I think...)
- Commits:
-
Summary ID 5b0ac716a1ab81cc0a3f3d77ce72fd238e4b17da b150f9e6e34891291408c2bfd7716885ab27f52d - Diff:
-
Revision 2 (+1578 -6)