mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-04-17 03:01:35 +02:00
modules/activitypub: add size limitation for received data
This commit is contained in:
parent
d7c4b5b0f2
commit
c8968e54fb
1 changed files with 8 additions and 1 deletions
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue