From 164057a3be1e666d6fb68398d616da9a8a665a18 Mon Sep 17 00:00:00 2001 From: Kegsay Date: Fri, 26 Jun 2020 12:51:54 +0100 Subject: [PATCH] Honour event size limits and return 413 (#1167) --- clientapi/routing/sendevent.go | 11 +++++++++++ go.mod | 2 +- go.sum | 2 ++ sytest-whitelist | 1 + 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/clientapi/routing/sendevent.go b/clientapi/routing/sendevent.go index d8936f75..aba5f0d5 100644 --- a/clientapi/routing/sendevent.go +++ b/clientapi/routing/sendevent.go @@ -157,6 +157,17 @@ func generateSendEvent( Code: http.StatusBadRequest, JSON: jsonerror.BadJSON(e.Error()), } + } else if e, ok := err.(gomatrixserverlib.EventValidationError); ok { + if e.Code == gomatrixserverlib.EventValidationTooLarge { + return nil, &util.JSONResponse{ + Code: http.StatusRequestEntityTooLarge, + JSON: jsonerror.BadJSON(e.Error()), + } + } + return nil, &util.JSONResponse{ + Code: http.StatusBadRequest, + JSON: jsonerror.BadJSON(e.Error()), + } } else if err != nil { util.GetLogger(req.Context()).WithError(err).Error("eventutil.BuildEvent failed") resErr := jsonerror.InternalServerError() diff --git a/go.mod b/go.mod index b37a662a..5f5a74a1 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/matrix-org/go-http-js-libp2p v0.0.0-20200518170932-783164aeeda4 github.com/matrix-org/go-sqlite3-js v0.0.0-20200522092705-bc8506ccbcf3 github.com/matrix-org/gomatrix v0.0.0-20190528120928-7df988a63f26 - github.com/matrix-org/gomatrixserverlib v0.0.0-20200625170349-8ebb44e6775d + github.com/matrix-org/gomatrixserverlib v0.0.0-20200626111150-364501214328 github.com/matrix-org/naffka v0.0.0-20200422140631-181f1ee7401f github.com/matrix-org/util v0.0.0-20190711121626-527ce5ddefc7 github.com/mattn/go-sqlite3 v2.0.2+incompatible diff --git a/go.sum b/go.sum index bfe5533d..24c8d74a 100644 --- a/go.sum +++ b/go.sum @@ -377,6 +377,8 @@ github.com/matrix-org/gomatrixserverlib v0.0.0-20200625153204-0f1026cd05d1 h1:QD github.com/matrix-org/gomatrixserverlib v0.0.0-20200625153204-0f1026cd05d1/go.mod h1:JsAzE1Ll3+gDWS9JSUHPJiiyAksvOOnGWF2nXdg4ZzU= github.com/matrix-org/gomatrixserverlib v0.0.0-20200625170349-8ebb44e6775d h1:v1JS+JZWwAsqAc22TGWPbRDc6O5D6geSfV5Bb5wvYIs= github.com/matrix-org/gomatrixserverlib v0.0.0-20200625170349-8ebb44e6775d/go.mod h1:JsAzE1Ll3+gDWS9JSUHPJiiyAksvOOnGWF2nXdg4ZzU= +github.com/matrix-org/gomatrixserverlib v0.0.0-20200626111150-364501214328 h1:rz6aiTpUyNPRcWZBWUGDkQjI7lfeLdhzy+x/Pw2jha8= +github.com/matrix-org/gomatrixserverlib v0.0.0-20200626111150-364501214328/go.mod h1:JsAzE1Ll3+gDWS9JSUHPJiiyAksvOOnGWF2nXdg4ZzU= github.com/matrix-org/naffka v0.0.0-20200422140631-181f1ee7401f h1:pRz4VTiRCO4zPlEMc3ESdUOcW4PXHH4Kj+YDz1XyE+Y= github.com/matrix-org/naffka v0.0.0-20200422140631-181f1ee7401f/go.mod h1:y0oDTjZDv5SM9a2rp3bl+CU+bvTRINQsdb7YlDql5Go= github.com/matrix-org/util v0.0.0-20190711121626-527ce5ddefc7 h1:ntrLa/8xVzeSs8vHFHK25k0C+NV74sYMJnNSg5NoSRo= diff --git a/sytest-whitelist b/sytest-whitelist index 02677d38..857457cd 100644 --- a/sytest-whitelist +++ b/sytest-whitelist @@ -386,3 +386,4 @@ Can reject invites over federation for rooms with version 3 Can reject invites over federation for rooms with version 4 Can reject invites over federation for rooms with version 5 Can reject invites over federation for rooms with version 6 +Event size limits