summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--activitypub.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/activitypub.c b/activitypub.c
index 4c8eaf5..e354a22 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -95,8 +95,14 @@ int activitypub_request(snac *snac, const char *url, xs_dict **data)
status = 400;
else
if (xs_str_in(ctype, "application/activity+json") != -1 ||
- xs_str_in(ctype, "application/ld+json") != -1)
- *data = xs_json_loads(payload);
+ xs_str_in(ctype, "application/ld+json") != -1) {
+
+ /* if there is no payload, fail */
+ if (xs_is_null(payload))
+ status = 400;
+ else
+ *data = xs_json_loads(payload);
+ }
else
status = 500;
}