[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/8] libelf: loop safety: Introduce elf_iter_ok and elf_strcmp_safe
>>> On 12.12.16 at 17:00, <ian.jackson@xxxxxxxxxxxxx> wrote: > Jan Beulich writes ("Re: [PATCH 1/8] libelf: loop safety: Introduce > elf_iter_ok and elf_strcmp_safe"): >> On 09.12.16 at 16:44, <ian.jackson@xxxxxxxxxxxxx> wrote: >> > + const uint64_t max_size_for_deacc = (1UL << >> > 63)/ELF_MAX_ITERATION_FACTOR; > ... >> > + elf->iteration_deaccumulator = 1024*1024 + >> > + (size > max_size_for_deacc ? max_size_for_deacc : size) >> > + * ELF_MAX_ITERATION_FACTOR; >> >> One more question here: Is this useful at all? You're allowing >> for approximately 2**63 accounted operations - how big does >> an image need to be to actually break this limit? XSA-25 already >> limited image sizes to 1Gb (but I do understand that the >> guarding here is also against e.g. redundant loading of the >> same bits through multiple program header table entries). >> >> And how long will it take you to reach that limit (and to cause >> elf->broken to be set)? With 1ns per accounted operation, >> that'll be on the order of 270 years. Am I missing something >> here? > > I'm not sure of your point. > > Mostly I allow for 4x the size of the image, plus a fixed constant of > 1M operations. Well, I have to confess that I've read the above as max() when in fact it is min(). > The max_size_for_deacc part is necessary because otherwise the > calculation "size * ELF_MAX_ITERATION_FACTOR" might overflow. It > seems unreasonable to simply allow that overflow to occur. But if it > is causing confusion we could do that. The result would be a low > value for iteration_deaccumulator. Considering that overflow here will actually result in a comparably smaller upper limit, I think this may help overall readability. But with the above I won't insist on this in any way. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |