[devel] re APT patch with impossible error on "Can't allocate an item of size zero"

Ivan Zakharyaschev imz на altlinux.org
Чт Фев 13 17:51:47 MSK 2020


On Thu, 13 Feb 2020, Aleksei Nikiforov wrote:

> 13.02.2020 05:08, Ivan Zakharyaschev пишет:
> > В ветке sisyphus_one_more_time в
> > git://git.altlinux.org/people/darktemplar/packages/apt.git в коммите
> > 
> > commit f53c1af17e2997ff6d2e23139bc61f5d5c82a547
> > Author: Aleksei Nikiforov <darktemplar на altlinux.org>
> > Date:   Tue Jun 11 14:53:47 2019 +0300
> > 
> >      dynamic memory management: apt-pkg/pkgcachegen.{cc,h} changes
> >      
> >      make the used MMap moveable (and therefore dynamic resizeable) by
> >      applying (some) mad pointer magic
> >      
> >      Ported from Apt from Debian
> >      
> >      Closes: https://bugzilla.altlinux.org/37373
> >      
> >      Change-Id: I4583e13077e7504ec8f59df4bcf3bc825eaf6202
> > 
> > есть такой hunk касательно DynamicMMap::RawAllocate():
> > 
> > diff --git a/apt/apt-pkg/contrib/mmap.cc b/apt/apt-pkg/contrib/mmap.cc
> > index d7a5c3a68..36dc11524 100644
> > --- a/apt/apt-pkg/contrib/mmap.cc
> > +++ b/apt/apt-pkg/contrib/mmap.cc
> > @@ -226,6 +245,12 @@ unsigned long DynamicMMap::RawAllocate(unsigned long
> > Size,unsigned long Aln)
> >      size in the file. */
> >   unsigned long DynamicMMap::Allocate(unsigned long ItemSize)
> >   {
> > +   if (ItemSize == 0)
> > +   {
> > +      _error->Error("Can't allocate an item of size zero");
> > +      return 0;
> > +   }
> > +
> >      // Look for a matching pool entry
> >      Pool *I;
> >      Pool *Empty = 0;
> > 
> > (Весь контекст изменений в этой функции в конце письма.)
> > 
> > Во-первых, почему бы это изменение не оформить отдельным коммитом, ведь
> 
> Если в этом есть необходимость, пожалуй, можно вынести это изменение в
> отдельный коммит. А она есть?

Не берусь оценить серьёзность необходимости, но так же нам (нынешним и 
будущим APT-программистам) легче будет изучать изменения.

-- 
Best regards,
Ivan


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