Hi, In `libc/hurd/hurdmalloc.c:281' there is an assertion that is triggered when SIZE has value ((1 << 31) - 1). Instead of assertion failure the function must return 0. Here is a patch that checks SIZE in different way.
BTW I didn't compile neither the previous patched `hurdchdir.c' nor this patched `hurdmalloc.c'. I'm not sure if the second test in the `if' statement is completely correct (you know, c-casting, int < unsigned). Regards -- Ognyan Kulev <[EMAIL PROTECTED]>, "\"Programmer\""
2002-03-25 Ognyan Kulev <[EMAIL PROTECTED]> * hurdmalloc.c (malloc): The sanity check for SIZE is rewritten.
--- hurdmalloc.c.orig Mon Mar 25 16:30:17 2002 +++ hurdmalloc.c Mon Mar 25 19:16:56 2002 @@ -265,9 +265,10 @@ malloc(size) register free_list_t fl; register header_t h; - if ((int) size < 0) /* sanity check */ - return 0; size += HEADER_SIZE; + if (size < HEADER_SIZE + || (1 << (NBUCKETS - 1 + LOG2_MIN_SIZE)) < size) + return 0; /* * Find smallest power-of-two block size * big enough to hold requested size plus header.