16efc896b0
- backport patches from gc-7_2-hotfix-2 branch in lieu of 7.2c release - gc 7.2 final abi broken when changing several symbols to hidden (#825473) - gc: malloc() and calloc() overflows (CVE-2012-2673, #828881)
56 lines
1.8 KiB
Diff
56 lines
1.8 KiB
Diff
From 5563e13d2b1b5c063bdabe720303d8068a07dcae Mon Sep 17 00:00:00 2001
|
|
From: Ivan Maidanski <ivmai@mail.ru>
|
|
Date: Sat, 2 Jun 2012 11:13:19 +0400
|
|
Subject: [PATCH 1/9] Fix visibility of GC_clear/set_mark_bit (unhide symbols)
|
|
|
|
* include/private/gc_priv.h (GC_clear_mark_bit, GC_set_mark_bit):
|
|
Declare as GC_API_PRIV (instead of GC_INNER) to make the symbol
|
|
externally visible to 3rd-party software (e.g., ECL).
|
|
* mark.c (GC_set_mark_bit, GC_clear_mark_bit): Remove GC_INNER (to
|
|
match the declaration).
|
|
---
|
|
include/private/gc_priv.h | 4 ++--
|
|
mark.c | 4 ++--
|
|
2 files changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/include/private/gc_priv.h b/include/private/gc_priv.h
|
|
index 8eefb70..5afa916 100644
|
|
--- a/include/private/gc_priv.h
|
|
+++ b/include/private/gc_priv.h
|
|
@@ -1905,8 +1905,8 @@ GC_EXTERN GC_bool GC_print_back_height;
|
|
|
|
/* Slow/general mark bit manipulation: */
|
|
GC_API_PRIV GC_bool GC_is_marked(ptr_t p);
|
|
-GC_INNER void GC_clear_mark_bit(ptr_t p);
|
|
-GC_INNER void GC_set_mark_bit(ptr_t p);
|
|
+GC_API_PRIV void GC_clear_mark_bit(ptr_t p);
|
|
+GC_API_PRIV void GC_set_mark_bit(ptr_t p);
|
|
|
|
/* Stubborn objects: */
|
|
void GC_read_changed(void); /* Analogous to GC_read_dirty */
|
|
diff --git a/mark.c b/mark.c
|
|
index 41a7af5..746f1bd 100644
|
|
--- a/mark.c
|
|
+++ b/mark.c
|
|
@@ -187,7 +187,7 @@ static void clear_marks_for_block(struct hblk *h, word dummy)
|
|
}
|
|
|
|
/* Slow but general routines for setting/clearing/asking about mark bits */
|
|
-GC_INNER void GC_set_mark_bit(ptr_t p)
|
|
+void GC_set_mark_bit(ptr_t p)
|
|
{
|
|
struct hblk *h = HBLKPTR(p);
|
|
hdr * hhdr = HDR(h);
|
|
@@ -199,7 +199,7 @@ GC_INNER void GC_set_mark_bit(ptr_t p)
|
|
}
|
|
}
|
|
|
|
-GC_INNER void GC_clear_mark_bit(ptr_t p)
|
|
+void GC_clear_mark_bit(ptr_t p)
|
|
{
|
|
struct hblk *h = HBLKPTR(p);
|
|
hdr * hhdr = HDR(h);
|
|
--
|
|
1.7.10.2
|
|
|