[Mailman-Users] User doesn't get added to mailinglist

Mark Sapiro mark at msapiro.net
Thu Feb 14 13:11:59 EST 2019


On 2/14/19 7:13 AM, Pascal Christen wrote:
> 
> Ok I got it. I've just reviewed the patch
> (https://launchpadlibrarian.net/379908276/patch.txt) for CVE-2018-13796
> and found that line:
> 
> +            longest = max([len(x) for x in list_names()])
> 
> 
> So at every request it gets ALL lists and saves the length of the
> longest list into "longest". This works well if you have 1 list, but
> what if you have about 10'000? Not very well guys :D
> 
> Currently I have no smart idea how to rewrite the patch. Can you think
> of something?

Thank you for your analysis. I will try to come up with something better
than the current patch. I suspect that part of the issue is with a large
number of lists, Mailman's lists/ directory itself occupies several file
system blocks and the list_names() function, which the patch calls
twice, takes a long time, both in listing the names in the lists/
directory and then checking each name for a subordinate config.pck file.

We can cut that in half by replacing

        # Get the longest listname or 20 if none.
        if list_names():
            longest = max([len(x) for x in list_names()])
        else:
            longest = 20

with

        # Get the longest listname or 20 if none.
        l_names = list_names()
        if l_names:
            longest = max([len(x) for x in l_names])
        else:
            longest = 20

That may help.

-- 
Mark Sapiro <mark at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan


More information about the Mailman-Users mailing list