lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 7 Feb 2022 09:26:19 -0800
From:   Jakub Kicinski <kuba@...nel.org>
To:     Al Viro <viro@...iv.linux.org.uk>
Cc:     davem@...emloft.net, netdev@...r.kernel.org, borisp@...dia.com,
        john.fastabend@...il.com, daniel@...earbox.net,
        vfedorenko@...ek.ru, kernel-team@...com, axboe@...nel.dk
Subject: Re: [PATCH net-next] tls: cap the output scatter list to something
 reasonable

On Mon, 7 Feb 2022 17:15:30 +0000 Al Viro wrote:
> On Wed, Feb 02, 2022 at 02:20:31PM -0800, Jakub Kicinski wrote:
> > TLS recvmsg() passes user pages as destination for decrypt.
> > The decrypt operation is repeated record by record, each
> > record being 16kB, max. TLS allocates an sg_table and uses
> > iov_iter_get_pages() to populate it with enough pages to
> > fit the decrypted record.
> > 
> > Even though we decrypt a single message at a time we size
> > the sg_table based on the entire length of the iovec.
> > This leads to unnecessarily large allocations, risking
> > triggering OOM conditions.
> > 
> > Use iov_iter_truncate() / iov_iter_reexpand() to construct
> > a "capped" version of iov_iter_npages(). Alternatively we
> > could parametrize iov_iter_npages() to take the size as
> > arg instead of using i->count, or do something else..  
> 
> Er...  Would simply passing 16384/PAGE_SIZE instead of MAX_INT work
> for your purposes?

The last arg is maxpages, I want maxbytes, no?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ