From 5be22394675bff99cae673251696f8d0ce8ce0de Mon Sep 17 00:00:00 2001 From: default Date: Fri, 16 Jun 2023 09:25:32 +0200 Subject: [PATCH] Quick fix to "Script self-injection in edit box". In the 'Edit...' box, the sourceContent (which was written by a user) has its < replaced with < . This issue does not propagate to the public timeline nor to the recipients of the post. Reference: https://codeberg.org/grunfink/snac2/issues/53 --- html.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/html.c b/html.c index 892a08c..9f9737a 100644 --- a/html.c +++ b/html.c @@ -668,9 +668,11 @@ xs_str *html_entry_controls(snac *snac, xs_str *os, const xs_dict *msg, const ch s = xs_str_cat(s, "\n"); - char *prev_src = xs_dict_get(msg, "sourceContent"); + const char *prev_src1 = xs_dict_get(msg, "sourceContent"); + + if (!xs_is_null(prev_src1) && strcmp(actor, snac->actor) == 0) { + xs *prev_src = xs_replace(prev_src1, "<", "<"); - if (!xs_is_null(prev_src) && strcmp(actor, snac->actor) == 0) { /* post can be edited */ xs *s1 = xs_fmt( "

%s\n"