diff options
author | Remi Collet <remi@remirepo.net> | 2019-12-02 12:51:10 +0100 |
---|---|---|
committer | Remi Collet <remi@remirepo.net> | 2019-12-02 12:51:10 +0100 |
commit | 094327b12b62cf33f8b00935a03767455f1811e8 (patch) | |
tree | 9b8aa5c45693741c3557917f552d877a3f5d908d /0654240f24f6f619074c205462dbefe9b175c122.patch | |
parent | c7a324bd6e7fa7f311a94130fa27144ae7af5ac7 (diff) |
v2.8.1
Diffstat (limited to '0654240f24f6f619074c205462dbefe9b175c122.patch')
-rw-r--r-- | 0654240f24f6f619074c205462dbefe9b175c122.patch | 46 |
1 files changed, 46 insertions, 0 deletions
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 <github@derickrethans.nl> +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; |