mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
fix: usr: Disable own memory context for libxml2 on macOS
Apple broke custom memory allocation functions in the system-wide libxml2 starting with macOS Sequoia 15.4. Usage of the custom memory allocation functions has been disabled on macOS. Closes #5268 Merge branch '5268-disable-libxml2-memory-management-on-macos' into 'main' See merge request isc-projects/bind9!10374
This commit is contained in:
commit
6f3fea837f
1 changed files with 12 additions and 5 deletions
|
|
@ -19,6 +19,7 @@
|
|||
#include <libxml/parser.h>
|
||||
#include <libxml/xmlversion.h>
|
||||
|
||||
#ifndef LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS
|
||||
static isc_mem_t *isc__xml_mctx = NULL;
|
||||
|
||||
static void *
|
||||
|
|
@ -44,17 +45,20 @@ isc__xml_free(void *ptr) {
|
|||
isc_mem_free(isc__xml_mctx, ptr);
|
||||
}
|
||||
|
||||
#endif /* !LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS) */
|
||||
#endif /* HAVE_LIBXML2 */
|
||||
|
||||
void
|
||||
isc__xml_initialize(void) {
|
||||
#ifdef HAVE_LIBXML2
|
||||
#ifndef LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS
|
||||
isc_mem_create(&isc__xml_mctx);
|
||||
isc_mem_setname(isc__xml_mctx, "libxml2");
|
||||
isc_mem_setdestroycheck(isc__xml_mctx, false);
|
||||
|
||||
RUNTIME_CHECK(xmlMemSetup(isc__xml_free, isc__xml_malloc,
|
||||
isc__xml_realloc, isc__xml_strdup) == 0);
|
||||
#endif /* !LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS */
|
||||
|
||||
xmlInitParser();
|
||||
#endif /* HAVE_LIBXML2 */
|
||||
|
|
@ -64,15 +68,18 @@ void
|
|||
isc__xml_shutdown(void) {
|
||||
#ifdef HAVE_LIBXML2
|
||||
xmlCleanupParser();
|
||||
|
||||
#ifndef LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS
|
||||
isc_mem_detach(&isc__xml_mctx);
|
||||
#endif /* !LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS */
|
||||
#endif /* HAVE_LIBXML2 */
|
||||
}
|
||||
|
||||
void
|
||||
isc__xml_setdestroycheck(bool check) {
|
||||
#if HAVE_LIBXML2
|
||||
isc__xml_setdestroycheck(bool check ISC_ATTR_UNUSED) {
|
||||
#ifdef HAVE_LIBXML2
|
||||
#ifndef LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS
|
||||
isc_mem_setdestroycheck(isc__xml_mctx, check);
|
||||
#else
|
||||
UNUSED(check);
|
||||
#endif
|
||||
#endif /* LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS */
|
||||
#endif /* HAVE_LIBXML2 */
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue