modules/activitypub: add size limitation for received data

This commit is contained in:
famfo 2025-02-24 03:25:29 +01:00
parent d7c4b5b0f2
commit c8968e54fb
No known key found for this signature in database

View file

@ -191,10 +191,17 @@ func (c *Client) GetBody(uri string) ([]byte, error) {
return nil, err
}
defer response.Body.Close()
body, err := io.ReadAll(response.Body)
if response.ContentLength > setting.Federation.MaxSize {
return nil, fmt.Errorf("Request returned %d bytes (max allowed incomming size: %d bytes)", response.ContentLength, setting.Federation.MaxSize)
} else if response.ContentLength == -1 {
log.Warn("Request to %v returned an unknown content length, response may be truncated to %d bytes", uri, setting.Federation.MaxSize)
}
body, err := io.ReadAll(io.LimitReader(response.Body, setting.Federation.MaxSize))
if err != nil {
return nil, err
}
log.Debug("Client: got body: %v", charLimiter(string(body), 120))
return body, nil
}