commit 219f3e6
grunfink
·
2025-12-18 07:54:21 +0000 UTC
parent fd45b94
Fixed leak in emoji_reacted().
M
data.c
+3,
-3
1@@ -1959,19 +1959,19 @@ xs_list *muted_list(snac *user)
2
3 /** emojis react **/
4
5-const xs_str *emoji_reacted(snac *user, const char *id)
6+xs_str *emoji_reacted(snac *user, const char *id)
7 /* returns the emoji an user reacted to a message */
8 {
9 xs *emojis = object_get_emoji_reacts(id);
10 int c = 0;
11 const char *v;
12- xs_dict *msg;
13
14 while (xs_list_next(emojis, &v, &c)) {
15+ xs *msg = NULL;
16 if (object_get_by_md5(v, &msg)) {
17 const xs_val *act = xs_dict_get(msg, "actor");
18 if (act && strcmp(act, user->actor) == 0)
19- return xs_dict_get(msg, "content");
20+ return xs_dup(xs_dict_get(msg, "content"));
21 }
22 }
23 return NULL;
M
html.c
+3,
-2
1@@ -2107,14 +2107,15 @@ xs_html *html_entry_controls(snac *user, const char *actor,
2 /* the post textarea */
3 xs *div_id = xs_fmt("%s_reply", md5);
4 xs *form_id = xs_fmt("%s_reply_form", md5);
5+ xs *e_react = emoji_reacted(user, id);
6
7 xs_html_add(controls, xs_html_tag("div",
8 xs_html_tag("p", NULL),
9 html_emoji(
10- user, L("Emoji react"),
11+ user, L("Emoji react..."),
12 div_id, form_id,
13 ":neocat:", id,
14- emoji_reacted(user, id))),
15+ e_react)),
16 xs_html_tag("p", NULL));
17 }
18
M
snac.h
+1,
-1
1@@ -205,7 +205,7 @@ void unmute(snac *snac, const char *actor);
2 int is_muted(snac *snac, const char *actor);
3 xs_list *muted_list(snac *user);
4
5-const xs_str *emoji_reacted(snac *user, const char *id);
6+xs_str *emoji_reacted(snac *user, const char *id);
7
8 int is_bookmarked(snac *user, const char *id);
9 int bookmark(snac *user, const char *id);