commit 95ccff5
default
·
2023-12-10 09:00:17 +0000 UTC
parent d7fe3ba
process_input_message() returns -1 on errors.
1 files changed,
+8,
-9
+8,
-9
1@@ -1468,13 +1468,17 @@ int update_question(snac *user, const char *id)
2 int process_input_message(snac *snac, xs_dict *msg, xs_dict *req)
3 /* processes an ActivityPub message from the input queue */
4 {
5- /* actor and type exist, were checked previously */
6 char *actor = xs_dict_get(msg, "actor");
7 char *type = xs_dict_get(msg, "type");
8 xs *actor_o = NULL;
9 int a_status;
10 int do_notify = 0;
11
12+ if (xs_is_null(actor) || *actor == '\0') {
13+ snac_debug(snac, 0, xs_fmt("malformed message (bad actor)"));
14+ return -1;
15+ }
16+
17 /* question votes may not have a type */
18 if (xs_is_null(type))
19 type = "Note";
20@@ -1482,12 +1486,7 @@ int process_input_message(snac *snac, xs_dict *msg, xs_dict *req)
21 /* reject uninteresting messages right now */
22 if (strcmp(type, "Add") == 0) {
23 snac_debug(snac, 0, xs_fmt("Ignored message of type '%s'", type));
24- return 1;
25- }
26-
27- if (xs_is_null(actor)) {
28- snac_debug(snac, 0, xs_fmt("malformed message"));
29- return 1;
30+ return -1;
31 }
32
33 char *object, *utype;
34@@ -1523,7 +1522,7 @@ int process_input_message(snac *snac, xs_dict *msg, xs_dict *req)
35 snac_debug(snac, 1,
36 xs_fmt("dropping message due to actor error %s %d", actor, a_status));
37
38- return 1;
39+ return -1;
40 }
41
42 if (!valid_status(a_status)) {
43@@ -1542,7 +1541,7 @@ int process_input_message(snac *snac, xs_dict *msg, xs_dict *req)
44
45 srv_archive_error("check_signature", sig_err, req, msg);
46
47- return 1;
48+ return -1;
49 }
50
51 if (strcmp(type, "Follow") == 0) { /** **/