summaryrefslogtreecommitdiffstats
path: root/main/libmaxminddb/0002-make-MMDB_aget_value-s-path-argument-const-correct.patch
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2013-11-14 15:33:16 +0200
committerTimo Teräs <timo.teras@iki.fi>2013-11-14 15:33:16 +0200
commit6fd658a9994c9d1d1aa3447bddc8c1a15744e766 (patch)
tree150cfd517c52015f1081c23f2fb2092cbd4dbc4c /main/libmaxminddb/0002-make-MMDB_aget_value-s-path-argument-const-correct.patch
parent3df7efd33ac16ad57c9d2c2e8cb7b29576edd6fa (diff)
downloadaports-6fd658a9994c9d1d1aa3447bddc8c1a15744e766.tar.bz2
aports-6fd658a9994c9d1d1aa3447bddc8c1a15744e766.tar.xz
main/libmaxminddb: new aport
Maxmind GeoIP2 database library https://github.com/maxmind/$pkgname
Diffstat (limited to 'main/libmaxminddb/0002-make-MMDB_aget_value-s-path-argument-const-correct.patch')
-rw-r--r--main/libmaxminddb/0002-make-MMDB_aget_value-s-path-argument-const-correct.patch174
1 files changed, 174 insertions, 0 deletions
diff --git a/main/libmaxminddb/0002-make-MMDB_aget_value-s-path-argument-const-correct.patch b/main/libmaxminddb/0002-make-MMDB_aget_value-s-path-argument-const-correct.patch
new file mode 100644
index 000000000..958067185
--- /dev/null
+++ b/main/libmaxminddb/0002-make-MMDB_aget_value-s-path-argument-const-correct.patch
@@ -0,0 +1,174 @@
+From ea773070121c9e0ef55680af4d9b45a8be6bfe1b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Thu, 14 Nov 2013 15:28:04 +0200
+Subject: [PATCH 2/2] make MMDB_aget_value()'s path argument const correct
+
+---
+ include/maxminddb.h | 2 +-
+ src/maxminddb.c | 49 ++++++++++++++++++-------------------------------
+ 2 files changed, 19 insertions(+), 32 deletions(-)
+
+diff --git a/include/maxminddb.h b/include/maxminddb.h
+index 599d4d5..3c6e645 100644
+--- a/include/maxminddb.h
++++ b/include/maxminddb.h
+@@ -178,7 +178,7 @@ typedef struct MMDB_search_node_s {
+ extern int MMDB_vget_value(MMDB_entry_s *start, MMDB_entry_data_s *entry_data,
+ va_list va_path);
+ extern int MMDB_aget_value(MMDB_entry_s *start, MMDB_entry_data_s *entry_data,
+- char **path);
++ const char *const * path);
+ extern int MMDB_get_metadata_as_entry_data_list(
+ MMDB_s *mmdb, MMDB_entry_data_list_s **entry_data_list);
+ extern int MMDB_get_entry_data_list(MMDB_entry_s *start,
+diff --git a/src/maxminddb.c b/src/maxminddb.c
+index 3bf7154..fc82c9a 100644
+--- a/src/maxminddb.c
++++ b/src/maxminddb.c
+@@ -132,9 +132,9 @@ LOCAL int populate_result(MMDB_s *mmdb, uint32_t node_count, uint32_t value,
+ uint16_t netmask, MMDB_lookup_result_s *result);
+ LOCAL uint32_t get_left_28_bit_record(const uint8_t *record);
+ LOCAL uint32_t get_right_28_bit_record(const uint8_t *record);
+-LOCAL int lookup_path_in_array(char *path_elem, MMDB_s *mmdb,
++LOCAL int lookup_path_in_array(const char *path_elem, MMDB_s *mmdb,
+ MMDB_entry_data_s *entry_data);
+-LOCAL int lookup_path_in_map(char *path_elem, MMDB_s *mmdb,
++LOCAL int lookup_path_in_map(const char *path_elem, MMDB_s *mmdb,
+ MMDB_entry_data_s *entry_data);
+ LOCAL int skip_map_or_array(MMDB_s *mmdb, MMDB_entry_data_s *entry_data);
+ LOCAL int decode_one_follow(MMDB_s *mmdb, uint32_t offset,
+@@ -402,7 +402,7 @@ LOCAL MMDB_s make_fake_metadata_db(MMDB_s *mmdb)
+ LOCAL uint32_t value_for_key_as_uint16(MMDB_entry_s *start, char *key)
+ {
+ MMDB_entry_data_s entry_data;
+- char *path[] = { key, NULL };
++ const char *path[] = { key, NULL };
+ MMDB_aget_value(start, &entry_data, path);
+ return entry_data.uint16;
+ }
+@@ -410,7 +410,7 @@ LOCAL uint32_t value_for_key_as_uint16(MMDB_entry_s *start, char *key)
+ LOCAL uint32_t value_for_key_as_uint32(MMDB_entry_s *start, char *key)
+ {
+ MMDB_entry_data_s entry_data;
+- char *path[] = { key, NULL };
++ const char *path[] = { key, NULL };
+ MMDB_aget_value(start, &entry_data, path);
+ return entry_data.uint32;
+ }
+@@ -418,7 +418,7 @@ LOCAL uint32_t value_for_key_as_uint32(MMDB_entry_s *start, char *key)
+ LOCAL uint64_t value_for_key_as_uint64(MMDB_entry_s *start, char *key)
+ {
+ MMDB_entry_data_s entry_data;
+- char *path[] = { key, NULL };
++ const char *path[] = { key, NULL };
+ MMDB_aget_value(start, &entry_data, path);
+ return entry_data.uint64;
+ }
+@@ -426,7 +426,7 @@ LOCAL uint64_t value_for_key_as_uint64(MMDB_entry_s *start, char *key)
+ LOCAL char *value_for_key_as_string(MMDB_entry_s *start, char *key)
+ {
+ MMDB_entry_data_s entry_data;
+- char *path[] = { key, NULL };
++ const char *path[] = { key, NULL };
+ MMDB_aget_value(start, &entry_data, path);
+ return strndup((char *)entry_data.utf8_string, entry_data.data_size);
+ }
+@@ -436,7 +436,7 @@ LOCAL int populate_languages_metadata(MMDB_s *mmdb, MMDB_s *metadata_db,
+ {
+ MMDB_entry_data_s entry_data;
+
+- char *path[] = { "languages", NULL };
++ const char *path[] = { "languages", NULL };
+ MMDB_aget_value(metadata_start, &entry_data, path);
+
+ if (MMDB_DATA_TYPE_ARRAY != entry_data.type) {
+@@ -487,7 +487,7 @@ LOCAL int populate_description_metadata(MMDB_s *mmdb, MMDB_s *metadata_db,
+ {
+ MMDB_entry_data_s entry_data;
+
+- char *path[] = { "description", NULL };
++ const char *path[] = { "description", NULL };
+ MMDB_aget_value(metadata_start, &entry_data, path);
+
+ if (MMDB_DATA_TYPE_MAP != entry_data.type) {
+@@ -831,43 +831,30 @@ int MMDB_get_value(MMDB_entry_s *start, MMDB_entry_data_s *entry_data, ...)
+ int MMDB_vget_value(MMDB_entry_s *start, MMDB_entry_data_s *entry_data,
+ va_list va_path)
+ {
+- char **path = NULL;
+-
++ const char **path = NULL;
++ const char *path_elem;
+ int i = 0;
+- char *path_elem;
+- while (NULL != (path_elem = va_arg(va_path, char *))) {
+- path = realloc(path, sizeof(char *) * (i + 1));
++
++ while (NULL != (path_elem = va_arg(va_path, const char *))) {
++ path = realloc(path, sizeof(const char *) * (i + 2));
+ if (NULL == path) {
+ return MMDB_OUT_OF_MEMORY_ERROR;
+ }
+
+- path[i] = strdup(path_elem);
+- if (NULL == path[i]) {
+- return MMDB_OUT_OF_MEMORY_ERROR;
+- }
++ path[i] = path_elem;
+ i++;
+ }
+-
+- path = realloc(path, sizeof(char *) * (i + 1));
+- if (NULL == path) {
+- return MMDB_OUT_OF_MEMORY_ERROR;
+- }
+ path[i] = NULL;
+
+ int status = MMDB_aget_value(start, entry_data, path);
+
+- i = 0;
+- char *elem;
+- while (NULL != (elem = path[i++])) {
+- free(elem);
+- }
+ free(path);
+
+ return status;
+ }
+
+ int MMDB_aget_value(MMDB_entry_s *start, MMDB_entry_data_s *entry_data,
+- char **path)
++ const char *const * path)
+ {
+ MMDB_s *mmdb = start->mmdb;
+ uint32_t offset = start->offset;
+@@ -888,7 +875,7 @@ int MMDB_aget_value(MMDB_entry_s *start, MMDB_entry_data_s *entry_data,
+ return MMDB_INVALID_LOOKUP_PATH_ERROR;
+ }
+
+- char *path_elem;
++ const char *path_elem;
+ while (NULL != (path_elem = *(path++))) {
+ DEBUG_NL;
+ DEBUG_MSGF("path elem = %s", path_elem);
+@@ -921,7 +908,7 @@ int MMDB_aget_value(MMDB_entry_s *start, MMDB_entry_data_s *entry_data,
+ return MMDB_SUCCESS;
+ }
+
+-LOCAL int lookup_path_in_array(char *path_elem, MMDB_s *mmdb,
++LOCAL int lookup_path_in_array(const char *path_elem, MMDB_s *mmdb,
+ MMDB_entry_data_s *entry_data)
+ {
+ uint32_t size = entry_data->data_size;
+@@ -952,7 +939,7 @@ LOCAL int lookup_path_in_array(char *path_elem, MMDB_s *mmdb,
+ return MMDB_SUCCESS;
+ }
+
+-LOCAL int lookup_path_in_map(char *path_elem, MMDB_s *mmdb,
++LOCAL int lookup_path_in_map(const char *path_elem, MMDB_s *mmdb,
+ MMDB_entry_data_s *entry_data)
+ {
+ uint32_t size = entry_data->data_size;
+--
+1.8.4.1
+