From 89ebfca28d319600b8095e02041eb857b7f5e67b Mon Sep 17 00:00:00 2001 From: "Philip.Hazel" Date: Fri, 21 Jul 2017 08:53:02 +0000 Subject: [PATCH] Put back pcre2_set_recursion_limit() as a real function, synonym for pcre2_set_depth_limit() in order to preserve the ABI. --- src/pcre2.h | 4 +++- src/pcre2.h.generic | 4 +++- src/pcre2.h.in | 4 +++- src/pcre2_context.c | 8 +++++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/pcre2.h b/src/pcre2.h index 7cafb4c..287b12a 100644 --- a/src/pcre2.h +++ b/src/pcre2.h @@ -488,6 +488,8 @@ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ pcre2_set_match_limit(pcre2_match_context *, uint32_t); \ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ pcre2_set_offset_limit(pcre2_match_context *, PCRE2_SIZE); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_recursion_limit(pcre2_match_context *, uint32_t); \ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ pcre2_set_recursion_memory_management(pcre2_match_context *, \ void *(*)(PCRE2_SIZE, void *), void (*)(void *, void *), void *); @@ -760,7 +762,7 @@ pcre2_compile are called by application code. */ #define pcre2_substring_number_from_name PCRE2_SUFFIX(pcre2_substring_number_from_name_) /* Keep this old function name for backwards compatibility */ -#define pcre2_set_recursion_limit pcre2_set_depth_limit +#define pcre2_set_recursion_limit PCRE2_SUFFIX(pcre2_set_recursion_limit_) /* Keep this obsolete function for backwards compatibility: it is now a noop. */ #define pcre2_set_recursion_memory_management PCRE2_SUFFIX(pcre2_set_recursion_memory_management_) diff --git a/src/pcre2.h.generic b/src/pcre2.h.generic index 7cafb4c..287b12a 100644 --- a/src/pcre2.h.generic +++ b/src/pcre2.h.generic @@ -488,6 +488,8 @@ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ pcre2_set_match_limit(pcre2_match_context *, uint32_t); \ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ pcre2_set_offset_limit(pcre2_match_context *, PCRE2_SIZE); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_recursion_limit(pcre2_match_context *, uint32_t); \ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ pcre2_set_recursion_memory_management(pcre2_match_context *, \ void *(*)(PCRE2_SIZE, void *), void (*)(void *, void *), void *); @@ -760,7 +762,7 @@ pcre2_compile are called by application code. */ #define pcre2_substring_number_from_name PCRE2_SUFFIX(pcre2_substring_number_from_name_) /* Keep this old function name for backwards compatibility */ -#define pcre2_set_recursion_limit pcre2_set_depth_limit +#define pcre2_set_recursion_limit PCRE2_SUFFIX(pcre2_set_recursion_limit_) /* Keep this obsolete function for backwards compatibility: it is now a noop. */ #define pcre2_set_recursion_memory_management PCRE2_SUFFIX(pcre2_set_recursion_memory_management_) diff --git a/src/pcre2.h.in b/src/pcre2.h.in index 399ddcd..4a8e126 100644 --- a/src/pcre2.h.in +++ b/src/pcre2.h.in @@ -488,6 +488,8 @@ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ pcre2_set_match_limit(pcre2_match_context *, uint32_t); \ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ pcre2_set_offset_limit(pcre2_match_context *, PCRE2_SIZE); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_recursion_limit(pcre2_match_context *, uint32_t); \ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ pcre2_set_recursion_memory_management(pcre2_match_context *, \ void *(*)(PCRE2_SIZE, void *), void (*)(void *, void *), void *); @@ -760,7 +762,7 @@ pcre2_compile are called by application code. */ #define pcre2_substring_number_from_name PCRE2_SUFFIX(pcre2_substring_number_from_name_) /* Keep this old function name for backwards compatibility */ -#define pcre2_set_recursion_limit pcre2_set_depth_limit +#define pcre2_set_recursion_limit PCRE2_SUFFIX(pcre2_set_recursion_limit_) /* Keep this obsolete function for backwards compatibility: it is now a noop. */ #define pcre2_set_recursion_memory_management PCRE2_SUFFIX(pcre2_set_recursion_memory_management_) diff --git a/src/pcre2_context.c b/src/pcre2_context.c index 9e557da..2c14df0 100644 --- a/src/pcre2_context.c +++ b/src/pcre2_context.c @@ -431,9 +431,15 @@ mcontext->offset_limit = limit; return 0; } -/* This function became obsolete at release 10.30. It is kept as a no-op for +/* This function became obsolete at release 10.30. It is kept as a synonym for backwards compatibility. */ +PCRE2_EXP_DEFN int PCRE2_CALL_CONVENTION +pcre2_set_recursion_limit(pcre2_match_context *mcontext, uint32_t limit) +{ +return pcre2_set_depth_limit(mcontext, limit); +} + PCRE2_EXP_DEFN int PCRE2_CALL_CONVENTION pcre2_set_recursion_memory_management(pcre2_match_context *mcontext, void *(*mymalloc)(size_t, void *), void (*myfree)(void *, void *),