[devel] [SCM] packages/apt: tags/0.5.15lorg2-alt74

Anton Farygin rider на basealt.ru
Вт Окт 22 18:51:25 MSK 2019


On 22.10.2019 18:32, Dmitry V. Levin wrote:
> On Tue, Oct 22, 2019 at 03:28:40PM +0300, Anton Farygin wrote:
>> On 22.10.2019 11:32, Dmitry V. Levin wrote:
>>> On Tue, Oct 22, 2019 at 03:01:16AM +0300, Michael Shigorin wrote:
>>>> On Tue, Oct 22, 2019 at 02:42:06AM +0300, Dmitry V. Levin wrote:
>>>>> On Tue, Sep 17, 2019 at 09:05:15AM +0000, Aleksei Nikiforov wrote:
>>>>>> Update of /people/darktemplar/packages/apt.git
>>>>>>       0.5.15lorg2-alt74
>>>>>>       - Added debugging output for allocation functions.
>>>>>>       - Fixed dynamic memory allocation pointer arithmetics issue.
>>>>> Жаль, что вы не дождались первого апреля, но всё равно спасибо,
>>>>> шутка получилась отличная.
>>>> В смысле про fixed?
>>> Именно.
>>>
>>> Этот патч увеличивает расход оперативной памяти apt'ом в среднем в полтора
>>> раза, но не исправляет UB с арифметикой указателей, поскольку MMap::Base
>>> как был невыровненным, так и остался невыровненным.  В отличие от Debian,
>>> между прочим, где по умолчанию MMap::Base выровнен на начало страницы.
>>>
>> Я не вижу разницы в адресе MMap::Base на Debian и у нас - в обоих
>> случаях он выровнен на начало страницы.
> У Алексея:
>
>        void *tmp_base = realloc(Base, newSize);
>
>        if (debug_grow)
>           _error->Warning(_("DynamicMMap::Grow: realloc from %llu to %llu, result: %s"), WorkSpace, newSize, (tmp_base == n
>
>        if (tmp_base == NULL)
>           return false;
>
>        Base = tmp_base;
>
> В Debian по умолчанию:
>
>     #ifdef MREMAP_MAYMOVE
>
>                  if ((Flags & Moveable) == Moveable)
>                          Base = mremap(Base, WorkSpace, newSize, MREMAP_MAYMOVE);
>                  else
>     #endif
>                          Base = mremap(Base, WorkSpace, newSize, 0);
>
>                  if(Base == MAP_FAILED)
>                          return false;
>
> Всё ещё не видно разницы?
>
Я просто посмотрел то, что получается (адреса). Результат одинаковый.

Если поискать это место в коде Алексея, то я вижу его  в строке 180 
(такое же как в приведённом тобой из Debian).

Там же поведение разное - если файл открыт и если нет.


Подробная информация о списке рассылки Devel