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

Bug#42898: libc6: db_dump185 links to libdb not libdb1



Andreas Jaeger wrote:
> Paul Martin writes:

> > db_dump185 cannot handle db1.85 databases as it links thus:
> > # ldd /usr/bin/db_dump185
> >         libdb.so.3 => /lib/libdb.so.3 (0x40006000)
> >         libc.so.6 => /lib/libc.so.6 (0x40041000)
> >         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)

>db_dump185 comes with db2 (it's build in the db2 subdirectory!) - and
>therefore it has to be linked with db2 (aka libdb.so.3).  glibc is
>just following the recommend way of the db2 authors.


No. This is a bug.

I wasted a lot of time because of it.
Observe (lines split for clarity):

  ~/.netscape> file cert.db
  cert.db: Berkeley DB 1.85 Hash/Little Endian (Version 2, \
  Bucket Size 1024, Bucket Shift 10, Directory Size 256,   \
  Segment Size 256, Segment Shift 8, Overflow Point 3,     \
  Last Freed 3, Max Bucket 5, High Mask 0x7, Low Mask 0x3, \
  Fill Factor 4, Number of Keys 8)

  ~/.netscape> env LD_PRELOAD=libdb.so.3 db_dump185 cert.db | db_load foo
  db_dump185: cert.db: Invalid argument
  db_load: line 1: unexpected format

  ~/.netscape> env LD_PRELOAD=libdb.so.2 db_dump185 cert.db | db_load foo

  ~/.netscape> file foo
  foo: Berkeley DB 2.X Hash/Little Endian (Version 5)



-jonathan


Reply to: