diff options
| author | grunfink <grunfink@comam.es> | 2025-12-18 08:54:21 +0100 |
|---|---|---|
| committer | grunfink <grunfink@comam.es> | 2025-12-18 08:54:21 +0100 |
| commit | 219f3e6808bdcf8a03cce404caa5cb6a008d00c5 (patch) | |
| tree | 85a417c87c274f1d5b853f5c56692a82a7375891 | |
| parent | fd45b94c09233221d7b98a7270c768272bd25ac9 (diff) | |
Fixed leak in emoji_reacted().
| -rw-r--r-- | data.c | 6 | ||||
| -rw-r--r-- | html.c | 5 | ||||
| -rw-r--r-- | snac.h | 2 |
3 files changed, 7 insertions, 6 deletions
@@ -1959,19 +1959,19 @@ xs_list *muted_list(snac *user) /** emojis react **/ -const xs_str *emoji_reacted(snac *user, const char *id) +xs_str *emoji_reacted(snac *user, const char *id) /* returns the emoji an user reacted to a message */ { xs *emojis = object_get_emoji_reacts(id); int c = 0; const char *v; - xs_dict *msg; while (xs_list_next(emojis, &v, &c)) { + xs *msg = NULL; if (object_get_by_md5(v, &msg)) { const xs_val *act = xs_dict_get(msg, "actor"); if (act && strcmp(act, user->actor) == 0) - return xs_dict_get(msg, "content"); + return xs_dup(xs_dict_get(msg, "content")); } } return NULL; @@ -2107,14 +2107,15 @@ xs_html *html_entry_controls(snac *user, const char *actor, /* the post textarea */ xs *div_id = xs_fmt("%s_reply", md5); xs *form_id = xs_fmt("%s_reply_form", md5); + xs *e_react = emoji_reacted(user, id); xs_html_add(controls, xs_html_tag("div", xs_html_tag("p", NULL), html_emoji( - user, L("Emoji react"), + user, L("Emoji react..."), div_id, form_id, ":neocat:", id, - emoji_reacted(user, id))), + e_react)), xs_html_tag("p", NULL)); } @@ -205,7 +205,7 @@ void unmute(snac *snac, const char *actor); int is_muted(snac *snac, const char *actor); xs_list *muted_list(snac *user); -const xs_str *emoji_reacted(snac *user, const char *id); +xs_str *emoji_reacted(snac *user, const char *id); int is_bookmarked(snac *user, const char *id); int bookmark(snac *user, const char *id); |