[FIX] (Try to) fix the memory leak

This commit is contained in:
LDA 2024-10-03 07:53:39 +02:00
commit 17474bda0f
2 changed files with 13 additions and 20 deletions

View file

@ -122,6 +122,7 @@ ParseeMemberHandler(ParseeData *data, HashMap *event)
Free(avatar);
Free(name);
Free(muc);
avatar = NULL;
/* TODO: XEP-0084 magic to advertise a new avatar if possible. */
}
@ -185,6 +186,7 @@ ParseeMemberHandler(ParseeData *data, HashMap *event)
Free(full_jid);
}
Free(chat_id);
Free(avatar);
Free(mime);
Free(sha);
Free(jid);
@ -424,7 +426,8 @@ ParseeMessageHandler(ParseeData *data, HashMap *event)
}
else
{
char *name;
char *name, *mime = NULL, *sha = NULL;
char *avatar;
/* Try to find the chat ID */
muc_id = ParseeGetMUCID(data, chat_id);
if (!chat_id)
@ -434,11 +437,16 @@ ParseeMessageHandler(ParseeData *data, HashMap *event)
/* TODO: Avoid using the AS endpoints */
name = ASGetName(data->config, id, m_sender);
Free(JoinMUC(data, event, encoded_from, muc_id, name, NULL));
avatar = ASGetAvatar(data->config, id, sender);
ASGetMIMESHA(data->config, avatar, &mime, &sha);
Free(JoinMUC(data, event, encoded_from, muc_id, name, sha));
to = muc_id;
Free(sha);
Free(mime);
Free(name);
Free(avatar);
}
if (reply_id)
{

View file

@ -49,7 +49,7 @@ TrimBase64(char *b64)
XMLElement *
GenerateAvatarData(ParseeData *data, char *mxid)
{
char *mxc, *mime = NULL, *out = NULL, *b64 = NULL;
char *mxc = NULL, *mime = NULL, *out = NULL, *b64 = NULL;
XMLElement *elem = NULL, *type, *binval;
size_t len = 0;
if (!data || !mxid)
@ -57,9 +57,10 @@ GenerateAvatarData(ParseeData *data, char *mxid)
return NULL;
}
/* TODO: Use the right room */
mxc = ASGetAvatar(data->config, NULL, mxid);
if (!ASGrab(data->config, mxc, &mime, &out, &len))
if (!mxc || !ASGrab(data->config, mxc, &mime, &out, &len))
{
goto end;
}
@ -449,22 +450,6 @@ IQGet(ParseeData *args, XMLElement *stanza, XMPPThread *thr)
char *mto_link = ParseeGenerateMTO(to_matrix);
XMLAddAttr(vCard, "xmlns", "vcard-temp");
{
XMLElement *fn = CreateTagWithText(
"FN", name ? name : to_matrix
);
XMLElement *nick = CreateTagWithText(
"NICKNAME", to_matrix
);
XMLElement *url = CreateTagWithText(
"URL", mto_link
);
/* TODO: Maybe abstract the vCard code. */
/* TODO: Make a function to just get a user's avatar
* automatically. */
XMLAddChild(vCard, nick);
XMLAddChild(vCard, url);
XMLAddChild(vCard, fn);
XMLAddChild(vCard, GenerateAvatarData(args, to_matrix));
Free(mto_link);