Karim BELABAS on Tue, 18 Jun 2002 10:23:45 +0200 (MEST)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: 64bit HPUX binary buggy


On Wed, 12 Jun 2002, Karim BELABAS wrote:
> On Wed, 12 Jun 2002, Igor Schein wrote:
>> OK, I'm including the complete log of bnfinit(x^2+1) at \g9 on HPUX.
[...]
>
> OK, I guess the problem occurs in minim_alloc (should be entered only once),
> probably in init_dalloc() or in dalloc()  [ allocate a double * on the pari
> stack ], presumably the latter.
>
[...]
> double *
> dalloc(size_t n)
> {
>   gpmem_t av = avma - n;
>   if ((long)av < 0 || avma < bot) err(errpile);
>   avma = av; return (double*)avma;
> }

The problem was solved in private email: the ((long)av < 0) test in dalloc
was incorrect [ assumed addresses were not "too large" ]. The function now
reads:

double *
dalloc(size_t n)
{
  if (avma - bot < n) err(errpile);
  avma -= n; return (double*)avma;
}

which should be foolproof ... assuming the stack grows downward [ looks like a
good idea to encapsulate that as well ]

    Karim.
-- 
Karim Belabas                    Tel: (+33) (0)1 69 15 57 48
Dép. de Mathematiques, Bat. 425  Fax: (+33) (0)1 69 15 60 19
Université Paris-Sud             Email: Karim.Belabas@math.u-psud.fr
F-91405 Orsay (France)           http://www.math.u-psud.fr/~belabas
--
PARI/GP Home Page: http://www.parigp-home.de/