Skip to content

Improved error handling, Windows fixes, Autotool fixes

Choose a tag to compare

@oschwald oschwald released this 21 Jul 22:08
  • Previously, when there was an error in MMDB_open(), errno would
    generally be overwritten during cleanup, preventing a useful value from
    being returned to the caller. This was changed so that the errno value
    from the function call that caused the error is restored before returning to
    the caller. In particular, this is important for MMDB_IO_ERROR errors as
    checking errno is often the only way to determine what actually failed.
  • If mmap() fails due to running out of memory space, an
    MMDB_OUT_OF_MEMORY_ERROR is now returned from MMDB_open rather than an
    MMDB_IO_ERROR.
  • On Windows, the CreateFileMappingA() handle was not properly closed if
    opening the database succeeded. Fixed by Bly Hostetler. GitHub #75 & #76.
  • On Windows, we were not checking the return value of CreateFileMappingA()
    properly for errors. Fixed by Bly Hotetler. GitHub #78.
  • Several warnings from Clang's scan-build were fixed. GitHub #86.
  • All headers are now installed in $(includedir). GitHub #89.
  • We no longer install maxminddb-compat-util.h. This header was intended for
    internal use only.