Added checks for JSON body in accounts_data endpoint

This commit is contained in:
Prateek Sachan 2020-02-01 13:33:23 +05:30
parent 3dfafd4824
commit 6ce55e5383

View file

@ -15,6 +15,7 @@
package routing
import (
"encoding/json"
"io/ioutil"
"net/http"
@ -79,11 +80,26 @@ func SaveAccountData(
defer req.Body.Close() // nolint: errcheck
if req.Body == http.NoBody {
return util.JSONResponse{
Code: http.StatusBadRequest,
JSON: jsonerror.NotJSON("Content not JSON"),
}
}
body, err := ioutil.ReadAll(req.Body)
if err != nil {
return httputil.LogThenError(req, err)
}
var rawJson json.RawMessage
if err = json.Unmarshal(body, &rawJson); err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
JSON: jsonerror.BadJSON("Bad JSON content"),
}
}
if err := accountDB.SaveAccountData(
req.Context(), localpart, roomID, dataType, string(body),
); err != nil {