From 094327b12b62cf33f8b00935a03767455f1811e8 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 2 Dec 2019 12:51:10 +0100 Subject: v2.8.1 --- 0654240f24f6f619074c205462dbefe9b175c122.patch | 46 ++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 0654240f24f6f619074c205462dbefe9b175c122.patch (limited to '0654240f24f6f619074c205462dbefe9b175c122.patch') diff --git a/0654240f24f6f619074c205462dbefe9b175c122.patch b/0654240f24f6f619074c205462dbefe9b175c122.patch new file mode 100644 index 0000000..1eb280e --- /dev/null +++ b/0654240f24f6f619074c205462dbefe9b175c122.patch @@ -0,0 +1,46 @@ +From 0654240f24f6f619074c205462dbefe9b175c122 Mon Sep 17 00:00:00 2001 +From: Derick Rethans +Date: Sat, 30 Nov 2019 17:23:53 +0000 +Subject: [PATCH] Fix key generation on 32 bit platforms + +--- + xdebug_code_coverage.c | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/xdebug_code_coverage.c b/xdebug_code_coverage.c +index d7a2027fe..bd2a5f343 100644 +--- a/xdebug_code_coverage.c ++++ b/xdebug_code_coverage.c +@@ -1047,18 +1047,28 @@ static int prefill_from_function_table(zend_op_array *opa) + return ZEND_HASH_APPLY_KEEP; + } + ++/* Set correct int format to use */ ++#if SIZEOF_ZEND_LONG == 4 ++# define XDEBUG_PTR_KEY_LEN 8 ++# define XDEBUG_PTR_KEY_FMT "%08X" ++#else ++# define XDEBUG_PTR_KEY_LEN 16 ++# define XDEBUG_PTR_KEY_FMT "%016lX" ++#endif ++ ++ + static int mark_class_as_visited(zend_class_entry *ce) + { + int already_visited = 0; + void *dummy; /* we only care about key existence, not value */ +- char key[17]; ++ char key[XDEBUG_PTR_KEY_LEN + 1]; + +- snprintf(key, 17, "%016lX", (uintptr_t) ce); ++ snprintf(key, XDEBUG_PTR_KEY_LEN + 1, XDEBUG_PTR_KEY_FMT, (uintptr_t) ce); + +- if (xdebug_hash_find(XG(visited_classes), key, 16, (void*) &dummy)) { ++ if (xdebug_hash_find(XG(visited_classes), key, XDEBUG_PTR_KEY_LEN, (void*) &dummy)) { + already_visited = 1; + } else { +- xdebug_hash_add(XG(visited_classes), key, 16, NULL); ++ xdebug_hash_add(XG(visited_classes), key, XDEBUG_PTR_KEY_LEN, NULL); + } + + return already_visited; -- cgit