aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKegsay <kegan@matrix.org>2020-06-26 12:51:54 +0100
committerGitHub <noreply@github.com>2020-06-26 12:51:54 +0100
commit164057a3be1e666d6fb68398d616da9a8a665a18 (patch)
tree7499dd5bad788f9d0b6881cdc84d49039020c002
parent9592d53364b573f9cd6ae045b98c49779429fa5f (diff)
Honour event size limits and return 413 (#1167)
-rw-r--r--clientapi/routing/sendevent.go11
-rw-r--r--go.mod2
-rw-r--r--go.sum2
-rw-r--r--sytest-whitelist1
4 files changed, 15 insertions, 1 deletions
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