Comment 26 for bug 1001189

Revision history for this message
Colin Watson (cjwatson) wrote :

Mon Jun 18 04:20:41 BST 2012 Colin Watson <email address hidden>

        Avoid fatal errors when opening a 64-bit GDBM database from a 32-bit
        process (Ubuntu bug #1001189).

        * libdb/db_gdbm.c (trap_error): New function.
          (man_gdbm_open_wrapper): Rearrange interface to call gdbm_open
          rather than taking its return value as an argument. Fetch a test
          value from the database after opening it, inside a setjmp/longjmp
          guard to prevent GDBM from exiting.
        * include/mydbm.h (man_gdbm_open_wrapper): Update prototype.
          (MYDBM_CTRWOPEN, MYDBM_CRWOPEN, MYDBM_RWOPEN, MYDBM_RDOPEN):
          Update man_gdbm_open_wrapper calls, since it now calls gdbm_open
          itself.
        * NEWS: Document this.

It sounds like it might not be a bad idea to backport this to 12.04 as well, once this has landed in 12.10.