On Fri, Dec 28, 2007 at 02:06:48PM +0100, Martin Michlmayr wrote:
> * Martin Michlmayr <[EMAIL PROTECTED]> [2007-12-28 13:23]:
> > I need to check after the installation is done whether/how I can
> > reproduce this.
>
> Seems like I can:
>
> netwinder:~# /etc/cron.daily/man-db
> *** glibc detected *** /usr/bin/mandb: free(): invalid next size (fast):
> 0x000c28e8 ***
> /etc/cron.daily/man-db: line 33: 1063 Aborted
> start-stop-daemon --start --pidfile /dev/null --startas /usr/bin/mandb
> --oknodo --chuid man -- --no-purge --quiet
> netwinder:~# /etc/cron.daily/man-db
> *** glibc detected *** /usr/bin/mandb: free(): invalid next size (fast):
> 0x000c28e8 ***
> /etc/cron.daily/man-db: line 33: 1202 Aborted
> start-stop-daemon --start --pidfile /dev/null --startas /usr/bin/mandb
> --oknodo --chuid man -- --no-purge --quiet
> netwinder:~#
>
> What other information would you like to have?
Could you try this patch (thanks to Ivan Shmakov) and see if it fixes it
for you?
--- lib/hashtable.c 2007-12-31 16:16:15 +0000
+++ lib/hashtable.c 2007-12-31 17:03:16 +0000
@@ -97,25 +97,38 @@
return ht;
}
-/* Return pointer to definition of s, or NULL if it doesn't exist. */
-void *hash_lookup (const struct hashtable *ht, const char *s, size_t len)
+/* Return pointer to hash entry structure containing s, or NULL if it
+ * doesn't exist.
+ */
+static void *hash_lookup_structure (const struct hashtable *ht,
+ const char *s, size_t len)
{
struct nlist *np;
for (np = ht->hashtab[hash (s, len)]; np; np = np->next) {
if (strncmp (s, np->name, len) == 0)
- return np->defn;
+ return np;
}
return NULL;
}
+/* Return pointer to definition of s, or NULL if it doesn't exist. */
+void *hash_lookup (const struct hashtable *ht, const char *s, size_t len)
+{
+ struct nlist *np = hash_lookup_structure (ht, s, len);
+ if (np)
+ return np->defn;
+ else
+ return NULL;
+}
+
/* Return structure containing defn, or NULL if unable to store. */
struct nlist *hash_install (struct hashtable *ht, const char *name, size_t len,
void *defn)
{
struct nlist *np;
- np = hash_lookup (ht, name, len);
+ np = hash_lookup_structure (ht, name, len);
if (np) {
if (np->defn)
ht->free_defn (np->defn);
Thanks,
--
Colin Watson [EMAIL PROTECTED]
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]