|
Packit |
eed199 |
## 1.2.0 - 2016-03-23
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Four additional fields were added to the end of the `MMDB_search_node_s`
|
|
Packit |
eed199 |
struct returned by `MMDB_read_node`. These fields allow the user to iterate
|
|
Packit |
eed199 |
through the search tree without making undocumented assumptions about how
|
|
Packit |
eed199 |
this library works internally and without knowing the specific details of
|
|
Packit |
eed199 |
the database format. GitHub #110.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 1.1.5 - 2016-03-20
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Previously, reading a database with a pointer in the metadata would cause an
|
|
Packit |
eed199 |
`MMDB_INVALID_METADATA_ERROR` to be returned. This was due to an invalid
|
|
Packit |
eed199 |
offset being used when calculating the pointer. The `data_section` and
|
|
Packit |
eed199 |
`metadata_section` fields now both point to the beginning of the data
|
|
Packit |
eed199 |
section. Previously, `data_section` pointed to the beginning of the data
|
|
Packit |
eed199 |
separator. This will not affect anyone using only documented fields from
|
|
Packit |
eed199 |
`MMDB_s`.
|
|
Packit |
eed199 |
* `MMDB_lookup_sockaddr` will set `mmdb_error` to
|
|
Packit |
eed199 |
`MMDB_IPV6_LOOKUP_IN_IPV4_DATABASE_ERROR` if an IPv6 `sockaddr` is looked up
|
|
Packit |
eed199 |
in an IPv4-only database. Previously only `MMDB_lookup_string` would set
|
|
Packit |
eed199 |
this error code.
|
|
Packit |
eed199 |
* When resolving an address, this library now relies on `getaddrinfo` to
|
|
Packit |
eed199 |
determine the address family rather than trying to guess it itself.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 1.1.4 - 2016-01-06
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Packaging fixes. The 1.1.3 tarball release contained a lot of extra junk in
|
|
Packit |
eed199 |
the t/ directory.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 1.1.3 - 2016-01-05
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Added several additional checks to make sure that we don't attempt to read
|
|
Packit |
eed199 |
past the end of the databases's data section. Implemented by Tobias
|
|
Packit |
eed199 |
Stoeckmann. GitHub #103.
|
|
Packit |
eed199 |
* When searching for the database metadata, there was a bug that caused the
|
|
Packit |
eed199 |
code to think it had found valid metadata when none existed. In addition,
|
|
Packit |
eed199 |
this could lead to an attempt to read past the end of the database
|
|
Packit |
eed199 |
entirely. Finally, if there are multiple metadata markers in the database,
|
|
Packit |
eed199 |
we treat the final one as the start of the metdata, instead of the first.
|
|
Packit |
eed199 |
Implemented by Tobias Stoeckmann. GitHub #102.
|
|
Packit |
eed199 |
* Don't attempt to mmap a file that is too large to be mmapped on the
|
|
Packit |
eed199 |
system. Implemented by Tobias Stoeckmann. GitHub #101.
|
|
Packit |
eed199 |
* Added a missing out of memory check when reading a file's
|
|
Packit |
eed199 |
metadata. Implemented by Tobias Stoeckmann. GitHub #101.
|
|
Packit |
eed199 |
* Added several additional checks to make sure that we never attempt to
|
|
Packit |
eed199 |
`malloc` more than `SIZE_MAX` memory, which would lead to integer
|
|
Packit |
eed199 |
overflow. This could only happen with pathological databases. Implemented by
|
|
Packit |
eed199 |
Tobias Stoeckmann. GitHub #101.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 1.1.2 - 2015-11-16
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* IMPORTANT: This release includes a number of important security fixes. Among
|
|
Packit |
eed199 |
these fixes is improved validation of the database metadata. Unfortunately,
|
|
Packit |
eed199 |
MaxMind GeoIP2 and GeoLite2 databases created earlier than January 28, 2014
|
|
Packit |
eed199 |
had an invalid data type for the `record_size` in the metadata. Previously
|
|
Packit |
eed199 |
these databases worked on little endian machines with libmaxminddb but did
|
|
Packit |
eed199 |
not work on big endian machines. Due to increased safety checks when reading
|
|
Packit |
eed199 |
the file, these databases will no longer work on any platform. If you are
|
|
Packit |
eed199 |
using one of these databases, we recommend that you upgrade to the latest
|
|
Packit |
eed199 |
GeoLite2 or GeoIP2 database
|
|
Packit |
eed199 |
* Added pkg-config support. If your system supports it, then running `make
|
|
Packit |
eed199 |
install` now installs a `libmaxminddb.pc` file for pkgconfig. Implemented by
|
|
Packit |
eed199 |
Jan Vcelak.
|
|
Packit |
eed199 |
* Several segmentation faults found with afl-fuzz were fixed. These were
|
|
Packit |
eed199 |
caused by missing bounds checking and missing data type verification checks.
|
|
Packit |
eed199 |
* `MMDB_get_entry_data_list` will now fail on data structures with a depth
|
|
Packit |
eed199 |
greater than 512 and data structures that are cyclic. This should not
|
|
Packit |
eed199 |
affect any known MaxMind DB in production. All databases produced by
|
|
Packit |
eed199 |
MaxMind have a depth of less than five.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 1.1.1 - 2015-07-22
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Added `maxminddb-compat-util.h` as a source file to dist.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 1.1.0 - 2015-07-21
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Previously, when there was an error in `MMDB_open()`, `errno` would
|
|
Packit |
eed199 |
generally be overwritten during cleanup, preventing a useful value from
|
|
Packit |
eed199 |
being returned to the caller. This was changed so that the `errno` value
|
|
Packit |
eed199 |
from the function call that caused the error is restored before returning to
|
|
Packit |
eed199 |
the caller. In particular, this is important for `MMDB_IO_ERROR` errors as
|
|
Packit |
eed199 |
checking `errno` is often the only way to determine what actually failed.
|
|
Packit |
eed199 |
* If `mmap()` fails due to running out of memory space, an
|
|
Packit |
eed199 |
`MMDB_OUT_OF_MEMORY_ERROR` is now returned from `MMDB_open` rather than an
|
|
Packit |
eed199 |
`MMDB_IO_ERROR`.
|
|
Packit |
eed199 |
* On Windows, the `CreateFileMappingA()` handle was not properly closed if
|
|
Packit |
eed199 |
opening the database succeeded. Fixed by Bly Hostetler. GitHub #75 & #76.
|
|
Packit |
eed199 |
* On Windows, we were not checking the return value of `CreateFileMappingA()`
|
|
Packit |
eed199 |
properly for errors. Fixed by Bly Hotetler. GitHub #78.
|
|
Packit |
eed199 |
* Several warnings from Clang's scan-build were fixed. GitHub #86.
|
|
Packit |
eed199 |
* All headers are now installed in `$(includedir)`. GitHub #89.
|
|
Packit |
eed199 |
* We no longer install `maxminddb-compat-util.h`. This header was intended for
|
|
Packit |
eed199 |
internal use only.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 1.0.4 - 2015-01-02
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* If you used a non-integer string as an array index when doing a lookup with
|
|
Packit |
eed199 |
`MMDB_get_value()`, `MMDB_vget_value()`, or `MMDB_aget_value()`, the first
|
|
Packit |
eed199 |
element of the array would be returned rather than an error. A
|
|
Packit |
eed199 |
`MMDB_LOOKUP_PATH_DOES_NOT_MATCH_DATA_ERROR` error will now be returned.
|
|
Packit |
eed199 |
GitHub #61.
|
|
Packit |
eed199 |
* If a number larger than `LONG_MAX` was used in the same functions,
|
|
Packit |
eed199 |
`LONG_MAX` would have been used in the lookup. Now a
|
|
Packit |
eed199 |
`MMDB_INVALID_LOOKUP_PATH_ERROR` error will be returned.
|
|
Packit |
eed199 |
* Visual Studio build files were added for unit tests and some compatibility
|
|
Packit |
eed199 |
issues with the tests were fixed.
|
|
Packit |
eed199 |
* Visual Studio project was updated to use property pages. Patch by Andre.
|
|
Packit |
eed199 |
GitHub #69.
|
|
Packit |
eed199 |
* A test failure in `t/compile_c++_t.pl` on new installs was fixed.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 1.0.3 - 2014-12-02
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* A memory and file handle leak on Win32 was fixed when getting the database
|
|
Packit |
eed199 |
size fails. Patch by Federico G. Schwindt. GitHub PR #49.
|
|
Packit |
eed199 |
* Documentation fix. Federico G. Schwindt. GitHub PR #50.
|
|
Packit |
eed199 |
* Added Visual Studio build files and fixed incorrect CreateFileMappingA
|
|
Packit |
eed199 |
usage. Patch by Andre. GitHub #52.
|
|
Packit |
eed199 |
* The includes for the Windows header files were made lowercase in order to
|
|
Packit |
eed199 |
match the actual file names on case-sensitive file systems. GitHub PR #57.
|
|
Packit |
eed199 |
* Removed `realloc()` calls that caused warnings on Windows and generally
|
|
Packit |
eed199 |
cleaned up memory allocation in `MMDB_vget_value()`. See relevant discussion
|
|
Packit |
eed199 |
in GitHub #52.
|
|
Packit |
eed199 |
* Added an `extern "C" { ... }` wrapper to maxminddb.h when compiling with a
|
|
Packit |
eed199 |
C++ compiler. GitHub #55.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 1.0.2 - 2014-09-22
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Fixed a number of small issues found by Coverity.
|
|
Packit |
eed199 |
* When freeing the MMDB struct in `MMDB_close()` we make sure to set the
|
|
Packit |
eed199 |
pointers to NULL after freeing the memory they point to. This makes it safe
|
|
Packit |
eed199 |
to call `MMDB_close` more than once on the same `MMDB_s` struct
|
|
Packit |
eed199 |
pointer. Before this change, calling this function twice on the same pointer
|
|
Packit |
eed199 |
could cause the code to free memory that belonged to something else in the
|
|
Packit |
eed199 |
process. Patch by Shuxin Yang. GitHub PR #41.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 1.0.1 - 2014-09-03
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Added missing LICENSE and NOTICE files to distribution. No code changes.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 1.0.0 - 2014-09-02
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Bumped version to 1.0.0. No code changes.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 0.5.6 - 2014-07-21
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* There was a leak in the `MMDB_open()` sub when it was called against a file
|
|
Packit |
eed199 |
which did not contain any MMDB metadata. Reported by Federico
|
|
Packit |
eed199 |
G. Schwindt. GitHub issue #36.
|
|
Packit |
eed199 |
* Fixed an error that occurred when passing AI_V4MAPPED to `getaddrinfo()` on
|
|
Packit |
eed199 |
FreeBSD. Apparently this macro is defined but doesn't work the way we
|
|
Packit |
eed199 |
expected it to on that platform.
|
|
Packit |
eed199 |
* Made sure to call `freeaddrinfo()` when a call to `getaddrinfo()` fails but
|
|
Packit |
eed199 |
still allocated memory.
|
|
Packit |
eed199 |
* Fixed a segfault in the tests that occurred on FreeBSD if we passed a NULL
|
|
Packit |
eed199 |
value to `freeaddrinfo()`.
|
|
Packit |
eed199 |
* Added a missing step to the README.md file for installing from our GitHub
|
|
Packit |
eed199 |
repository. Patch by Yasith Fernando.
|
|
Packit |
eed199 |
* Added instructions for installing via Homebrew. Patch by Yasith Fernando.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 0.5.5 - 2014-03-11
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* The previous tarball failed to compile because it was missing the
|
|
Packit |
eed199 |
src/maxminddb-compat-util.h file. Reported by Günter Grodotzki. GitHub issue
|
|
Packit |
eed199 |
#18.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 0.5.4 - 2014-03-03
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Added support for compiling in the MinGW environment. Patch by Michael
|
|
Packit |
eed199 |
Eisendle.
|
|
Packit |
eed199 |
* Added const declarations to many spots in the public API. None of these
|
|
Packit |
eed199 |
should require changes to existing code.
|
|
Packit |
eed199 |
* Various documentation improvements.
|
|
Packit |
eed199 |
* Changed the license to the Apache 2.0 license.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 0.5.3 - 2013-12-23
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* The internal value_for_key_as_uint16 method was returning a uint32_t instead
|
|
Packit |
eed199 |
of a uint16_t. Reported by Robert Wells. GitHub issue #11.
|
|
Packit |
eed199 |
* The ip_version member of the MMDB_metadata_s struct was a uint8_t, even
|
|
Packit |
eed199 |
though the docs and spec said it should be a uint16_t. Reported by Robert
|
|
Packit |
eed199 |
Wells. GitHub issue #11.
|
|
Packit |
eed199 |
* The mmdblookup_t.pl test now reports that it needs IPC::Run3 to run (which
|
|
Packit |
eed199 |
it always did, but it didn't tell you this). Patch by Elan Ruusamäe. GitHub
|
|
Packit |
eed199 |
issue #10.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 0.5.2 - 2013-11-20
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Running `make` from the tarball failed. This is now fixed.
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
## 0.5.1 - 2013-11-20
|
|
Packit |
eed199 |
|
|
Packit |
eed199 |
* Renamed MMDB_LOOKUP_PATH_DOES_NOT_MATCH_DATA define to
|
|
Packit |
eed199 |
MMDB_LOOKUP_PATH_DOES_NOT_MATCH_DATA_ERROR for consistency. Fixes github
|
|
Packit |
eed199 |
issue #5. Reported by Albert Strasheim.
|
|
Packit |
eed199 |
* Updated README.md to show git clone with --recursive flag so you get the
|
|
Packit |
eed199 |
needed submodules. Fixes github issue #4. Reported by Ryan Peck.
|
|
Packit |
eed199 |
* Fixed some bugs with the MMDB_get_*value functions when navigating a data
|
|
Packit |
eed199 |
structure that included pointers. Fixes github issue #3. Reported by
|
|
Packit |
eed199 |
bagadon.
|
|
Packit |
eed199 |
* Fixed compilation problems on OSX and OpenBSD. We have tested this on OSX
|
|
Packit |
eed199 |
and OpenBSD 5.4. Fixes github issue #6.
|
|
Packit |
eed199 |
* Removed some unneeded memory allocations and added const to many variable
|
|
Packit |
eed199 |
declarations. Based on patches by Timo Teräs. Github issue #8.
|
|
Packit |
eed199 |
* Added a test that uses threads to check for thread safety issue in the
|
|
Packit |
eed199 |
library.
|
|
Packit |
eed199 |
* Distro tarball now includes man pages, tests, and test data
|