diff --git a/src/Utils/messages-media.ts b/src/Utils/messages-media.ts index 246daf2..5e979e4 100644 --- a/src/Utils/messages-media.ts +++ b/src/Utils/messages-media.ts @@ -320,6 +320,20 @@ export const encryptedStream = async( try { for await (const data of stream) { fileLength += data.length + + if( + type === 'remote' + && opts?.maxContentLength + && fileLength + data.length > opts.maxContentLength + ) { + throw new Boom( + `content length exceeded when encrypting "${type}"`, + { + data: { media, type } + } + ) + } + sha256Plain = sha256Plain.update(data) if(writeStream) { if(!writeStream.write(data)) {