gc/0001-Fix-visibility-of-GC_clear-set_mark_bit-unhide-symbo.patch
Rex Dieter 16efc896b0 7.2b-2
- 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)
2012-06-15 13:54:19 -05:00

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