summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Wegener <swegener@gentoo.org>2011-01-23 20:35:03 +0000
committerSven Wegener <swegener@gentoo.org>2011-01-23 20:35:03 +0000
commit4b0ef19b23b98777f6f0347ee9e6b27716027423 (patch)
tree3ba19ebf8673b1e1abe93359e8c689d95f3f1f3b /dev-util/systemtap
parentVersion bump. (diff)
downloadhistorical-4b0ef19b23b98777f6f0347ee9e6b27716027423.tar.gz
historical-4b0ef19b23b98777f6f0347ee9e6b27716027423.tar.bz2
historical-4b0ef19b23b98777f6f0347ee9e6b27716027423.zip
Cleanup.
Package-Manager: portage-2.2.0_alpha18/cvs/Linux x86_64
Diffstat (limited to 'dev-util/systemtap')
-rw-r--r--dev-util/systemtap/ChangeLog8
-rw-r--r--dev-util/systemtap/Manifest15
-rw-r--r--dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-dwarf.patch125
-rw-r--r--dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-unwind.patch183
-rw-r--r--dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-varargs.patch64
-rw-r--r--dev-util/systemtap/systemtap-1.0-r1.ebuild57
-rw-r--r--dev-util/systemtap/systemtap-1.1.ebuild53
7 files changed, 11 insertions, 494 deletions
diff --git a/dev-util/systemtap/ChangeLog b/dev-util/systemtap/ChangeLog
index a0c9323e448c..12b019e46a5c 100644
--- a/dev-util/systemtap/ChangeLog
+++ b/dev-util/systemtap/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-util/systemtap
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-util/systemtap/ChangeLog,v 1.88 2011/01/23 20:32:43 swegener Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-util/systemtap/ChangeLog,v 1.89 2011/01/23 20:35:03 swegener Exp $
+
+ 23 Jan 2011; Sven Wegener <swegener@gentoo.org> -systemtap-1.0-r1.ebuild,
+ -files/systemtap-1.0-CVE-2009-2911-dwarf.patch,
+ -files/systemtap-1.0-CVE-2009-2911-unwind.patch,
+ -files/systemtap-1.0-CVE-2009-2911-varargs.patch, -systemtap-1.1.ebuild:
+ Cleanup.
*systemtap-1.4 (23 Jan 2011)
diff --git a/dev-util/systemtap/Manifest b/dev-util/systemtap/Manifest
index 92931c927765..6e71310c10a6 100644
--- a/dev-util/systemtap/Manifest
+++ b/dev-util/systemtap/Manifest
@@ -1,23 +1,16 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-AUX systemtap-1.0-CVE-2009-2911-dwarf.patch 4252 RMD160 cea3c287b775d3a00dadfb609b635673309cf8b2 SHA1 5ff00486e9c3a0d1f3203fd10a74891939e97301 SHA256 1e665a3ea2ef0c05b0ab6321ed34377d9150ce7e1fd4845eb291fdb41d4e28c2
-AUX systemtap-1.0-CVE-2009-2911-unwind.patch 6985 RMD160 fe4a0b73a2a5c415d52a5a42d8729cd4cde9ffbd SHA1 495e91b7ab63e826b7d3654b8a1aa4b5a4a15fcb SHA256 558396bdfc98e08f52a82eb7b24ebaf4550f0a36adc527dfc7321337a9641c05
-AUX systemtap-1.0-CVE-2009-2911-varargs.patch 1972 RMD160 25780779174ca05e62b759b12a50c05650fdaa18 SHA1 d6b9d4a5c3e3a850d35828d929fe00afb87091fc SHA256 57d1cfe521cb291954c9c0f045f4fd3c22e9af343d400178b9708a5bc653bda5
-DIST systemtap-1.0.tar.gz 1472694 RMD160 f8315c01fe630d323ec453edb20628091c72f3e1 SHA1 6778a6c13c4ce1ffacb054a5b53b53553c50e80e SHA256 e0f30c80a9098f449d83a28b028111473349c02bb913ca286657cdb82a9a2e2c
-DIST systemtap-1.1.tar.gz 1563651 RMD160 66b5891e900c9156f67db72cb8f0ff3473c4e3f7 SHA1 cfa424b9dbe8fadfd947c7b645380c5177324f2a SHA256 f8e8e58d3740560a65c8dd166379aba80f7bea176ea9b41f12d1f0212ae4b4e5
DIST systemtap-1.2.tar.gz 1605296 RMD160 ba241a42534bc472a236cd51135af249b1f0a11d SHA1 22ae18546fcd622743d815a0c47b0f51fb6c3e2d SHA256 e6e364a53246dc2fd9c4222b2cbfc4de6b09fa7f8124420163d6de705196af4f
DIST systemtap-1.4.tar.gz 1853345 RMD160 3522f83f9fa73bdfe6ff2b5ed08f58f7a164dccc SHA1 d22184031c69e6844b34a874d573b0f8ac8f450f SHA256 3922b7f13e734d3432040b5bb54921aa343378743f994cb7fa0b749dcdb11a72
-EBUILD systemtap-1.0-r1.ebuild 1858 RMD160 a2f9305300c09f46f386d0c54dd1d47f641199aa SHA1 8f7bf39627cc24e89a248bfa6fce1fa761804f11 SHA256 22a2c704b07ce503cd4cb0d96e6758f2cadc10dc3c7ea1c965e908e74a5cdf10
-EBUILD systemtap-1.1.ebuild 1759 RMD160 badf2dc7ff6fd9b07b842164d6f4d2bc351001d8 SHA1 0a373dce21b16851e5829fe8b5681525b1eecf4a SHA256 f7aa0fa3f0c5a03688bf54d308e48f05d7c2cb5efec697bf97e7e20b9aa357b6
EBUILD systemtap-1.2.ebuild 1759 RMD160 f38c0445bc9189201cd3ec9bb3bac2a94b8193fc SHA1 77c106f3ae6971bbeeeadcf85d3ad3b14e8a6e3e SHA256 363e1e7f9e999322ebd043db0ba117f9991001adba41385162ffb0d3e467986c
EBUILD systemtap-1.4.ebuild 1759 RMD160 b8a22460ff07184ac99a4bc0d786f6d65b08012b SHA1 972405820edb5863f8006244074166f26fd1a413 SHA256 7762705da6500a40ba14d602c8bda4e00989e2123e6d9dde2b447b6b0759d99c
-MISC ChangeLog 15571 RMD160 6c82157e65d11bb36c325b72b3ed9b647f9220a6 SHA1 17204429f87891064fca2e93755b55eb5c8939b9 SHA256 faba4d53858a4bf040f9c2644c1b86521d33f2f98cb4f03cd039220879db77c5
+MISC ChangeLog 15835 RMD160 145de841fff4afc97b9e576c20a6896015af8c08 SHA1 4c37d96f3549c2a7870bd9a3d99ff5b8ac452c81 SHA256 2ba04f4fc6aaf11894d0c7fe27ebd7da2e4721419c47fe16188cb44450bc0e26
MISC metadata.xml 224 RMD160 7f4383dcad66333b9ce8db59aa0d45bac5e95ef9 SHA1 6d56e5c988fe0c85370db92875086218349cea45 SHA256 707842fe6bed516e5865253fa613bb036ddfa66026dd163981627d4b90373a4f
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)
-iEYEARECAAYFAk08kHAACgkQI1lqEGTUzyS72wCeJbpHBe4ia6rBJfHTJfshrbJ+
-0VkAoKsh/LE8lSPFV5+4JID5lI0wESSX
-=OQbH
+iEYEARECAAYFAk08kPwACgkQI1lqEGTUzyTGDQCfSs+uDa0VSGd0iYt3ECsCc99O
+NSUAoLrfP0ddx7AZEjeMT1DbvxoDump1
+=Tt+3
-----END PGP SIGNATURE-----
diff --git a/dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-dwarf.patch b/dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-dwarf.patch
deleted file mode 100644
index d592ab32562e..000000000000
--- a/dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-dwarf.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-https://bugzilla.redhat.com/show_bug.cgi?id=529175
-https://bugzilla.redhat.com/attachment.cgi?id=365294
-
-diff --git a/dwflpp.cxx b/dwflpp.cxx
-index 636cd38..c31548d 100644
---- a/dwflpp.cxx
-+++ b/dwflpp.cxx
-@@ -2272,7 +2272,15 @@ dwflpp::express_as_string (string prelude,
-
- fprintf(memstream, "{\n");
- fprintf(memstream, "%s", prelude.c_str());
-- bool deref = c_emit_location (memstream, head, 1);
-+
-+ unsigned int stack_depth;
-+ bool deref = c_emit_location (memstream, head, 1, &stack_depth);
-+
-+ // Ensure that DWARF keeps loc2c to a "reasonable" stack size
-+ // 32 intptr_t leads to max 256 bytes on the stack
-+ if (stack_depth > 32)
-+ throw semantic_error("oversized DWARF stack");
-+
- fprintf(memstream, "%s", postlude.c_str());
- fprintf(memstream, " goto out;\n");
-
-diff --git a/loc2c-test.c b/loc2c-test.c
-index 495a95f..ed7aa4b 100644
---- a/loc2c-test.c
-+++ b/loc2c-test.c
-@@ -329,11 +329,14 @@ handle_variable (Dwarf_Die *lscopes, int lnscopes, int out,
- "{\n"
- " intptr_t value;");
-
-- bool deref = c_emit_location (stdout, head, 1);
-+ unsigned int stack_depth;
-+ bool deref = c_emit_location (stdout, head, 1, &stack_depth);
-
- obstack_free (&pool, NULL);
-
-- puts (store ? " return;" :
-+ printf (" /* max expression stack depth %u */\n", stack_depth);
-+
-+ puts (store ? " return;" :
- " printk (\" ---> %ld\\n\", (unsigned long) value);\n"
- " return;");
-
-diff --git a/loc2c.c b/loc2c.c
-index 5d6b549..0716c7d 100644
---- a/loc2c.c
-+++ b/loc2c.c
-@@ -2071,7 +2071,8 @@ emit_loc_address (FILE *out, struct location *loc, unsigned int indent,
- assign it to an address-sized value. */
- static void
- emit_loc_value (FILE *out, struct location *loc, unsigned int indent,
-- const char *target, bool declare)
-+ const char *target, bool declare,
-+ bool *used_deref, unsigned int *max_stack)
- {
- if (declare)
- emit ("%*s%s %s;\n", indent * 2, "", STACK_TYPE, target);
-@@ -2091,6 +2092,9 @@ emit_loc_value (FILE *out, struct location *loc, unsigned int indent,
- case loc_address:
- case loc_value:
- emit_loc_address (out, loc, indent, target);
-+ *used_deref = *used_deref || loc->address.used_deref;
-+ if (loc->address.stack_depth > *max_stack)
-+ *max_stack = loc->address.stack_depth;
- break;
- }
-
-@@ -2098,7 +2102,8 @@ emit_loc_value (FILE *out, struct location *loc, unsigned int indent,
- }
-
- bool
--c_emit_location (FILE *out, struct location *loc, int indent)
-+c_emit_location (FILE *out, struct location *loc, int indent,
-+ unsigned int *max_stack)
- {
- emit ("%*s{\n", indent * 2, "");
-
-@@ -2134,9 +2139,11 @@ c_emit_location (FILE *out, struct location *loc, int indent)
- }
-
- bool deref = false;
-+ *max_stack = 0;
-
- if (loc->frame_base != NULL)
-- emit_loc_value (out, loc->frame_base, indent, "frame_base", true);
-+ emit_loc_value (out, loc->frame_base, indent, "frame_base", true,
-+ &deref, max_stack);
-
- for (; loc->next != NULL; loc = loc->next)
- switch (loc->type)
-@@ -2144,8 +2151,7 @@ c_emit_location (FILE *out, struct location *loc, int indent)
- case loc_address:
- case loc_value:
- /* Emit the program fragment to calculate the address. */
-- emit_loc_value (out, loc, indent + 1, "addr", false);
-- deref = deref || loc->address.used_deref;
-+ emit_loc_value (out, loc, indent + 1, "addr", false, &deref, max_stack);
- break;
-
- case loc_fragment:
-@@ -2172,6 +2178,9 @@ c_emit_location (FILE *out, struct location *loc, int indent)
-
- emit ("%s%*s}\n", loc->address.program, indent * 2, "");
-
-+ if (loc->address.stack_depth > *max_stack)
-+ *max_stack = loc->address.stack_depth;
-+
- return deref || loc->address.used_deref;
- }
-
-diff --git a/loc2c.h b/loc2c.h
-index becf2d8..45d9382 100644
---- a/loc2c.h
-+++ b/loc2c.h
-@@ -112,6 +112,7 @@ struct location *c_translate_argument (struct obstack *,
-
- Writes complete lines of C99, code forming a complete C block, to STREAM.
- Return value is true iff that code uses the `deref' runtime macros. */
--bool c_emit_location (FILE *stream, struct location *loc, int indent);
-+bool c_emit_location (FILE *stream, struct location *loc, int indent,
-+ unsigned int *max_stack);
-
- /* vim: set sw=2 ts=8 cino=>4,n-2,{2,^-2,t0,(0,u0,w1,M1 : */
diff --git a/dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-unwind.patch b/dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-unwind.patch
deleted file mode 100644
index f2f1aa4ee75c..000000000000
--- a/dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-unwind.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-https://bugzilla.redhat.com/show_bug.cgi?id=529175
-https://bugzilla.redhat.com/attachment.cgi?id=365413
-
-diff --git a/runtime/unwind.c b/runtime/unwind.c
-index 00108a3..7607770 100644
---- a/runtime/unwind.c
-+++ b/runtime/unwind.c
-@@ -88,7 +88,7 @@ static sleb128_t get_sleb128(const u8 **pcur, const u8 *end)
-
- /* given an FDE, find its CIE */
- static const u32 *cie_for_fde(const u32 *fde, void *unwind_data,
-- int is_ehframe)
-+ uint32_t table_len, int is_ehframe)
- {
- const u32 *cie;
-
-@@ -118,6 +118,11 @@ static const u32 *cie_for_fde(const u32 *fde, void *unwind_data,
- else
- cie = unwind_data + fde[1];
-
-+ /* Make sure address falls in the table */
-+ if (((void *)cie) < ((void*)unwind_data)
-+ || ((void*)cie) > ((void*)(unwind_data + table_len)))
-+ return NULL;
-+
- if (*cie <= sizeof(*cie) + 4 || *cie >= fde[1] - sizeof(*fde)
- || (*cie & (sizeof(*cie) - 1))
- || (cie[1] != 0xffffffff && cie[1] != 0)) {
-@@ -200,7 +205,8 @@ static unsigned long read_pointer(const u8 **pLoc, const void *end, signed ptrTy
- return value;
- }
-
--static signed fde_pointer_type(const u32 *cie)
-+static signed fde_pointer_type(const u32 *cie, void *unwind_data,
-+ uint32_t table_len)
- {
- const u8 *ptr = (const u8 *)(cie + 2);
- unsigned version = *ptr;
-@@ -212,11 +218,16 @@ static signed fde_pointer_type(const u32 *cie)
- const u8 *end = (const u8 *)(cie + 1) + *cie;
- uleb128_t len;
-
-+ /* end of cie should fall within unwind table. */
-+ if (((void*)end) < ((void *)unwind_data)
-+ || ((void *)end) > ((void *)(unwind_data + table_len)))
-+ return -1;
-+
- /* check if augmentation size is first (and thus present) */
- if (*ptr != 'z')
- return -1;
- /* check if augmentation string is nul-terminated */
-- if ((ptr = memchr(aug = (const void *)ptr, 0, end - ptr)) == NULL)
-+ if ((ptr = memchr(aug = (const void *)ptr, 0, end - ptr)) == NULL)
- return -1;
- ++ptr; /* skip terminator */
- get_uleb128(&ptr, end); /* skip code alignment */
-@@ -267,6 +278,10 @@ static void set_rule(uleb128_t reg, enum item_location where, uleb128_t value, s
- }
- }
-
-+/* Limit the number of instructions we process. Arbitrary limit.
-+ 512 should be enough for anybody... */
-+#define MAX_CFI 512
-+
- static int processCFI(const u8 *start, const u8 *end, unsigned long targetLoc, signed ptrType, struct unwind_state *state)
- {
- union {
-@@ -276,6 +291,9 @@ static int processCFI(const u8 *start, const u8 *end, unsigned long targetLoc, s
- } ptr;
- int result = 1;
-
-+ if (end - start > MAX_CFI)
-+ return 0;
-+
- dbug_unwind(1, "targetLoc=%lx state->loc=%lx\n", targetLoc, state->loc);
- if (start != state->cieStart) {
- state->loc = state->org;
-@@ -606,10 +624,10 @@ static int unwind_frame(struct unwind_frame_info *frame,
-
- /* found the fde, now set startLoc and endLoc */
- if (fde != NULL) {
-- cie = cie_for_fde(fde, table, is_ehframe);
-+ cie = cie_for_fde(fde, table, table_len, is_ehframe);
- if (likely(cie != NULL && cie != &bad_cie && cie != &not_fde)) {
- ptr = (const u8 *)(fde + 2);
-- ptrType = fde_pointer_type(cie);
-+ ptrType = fde_pointer_type(cie, table, table_len);
- startLoc = read_pointer(&ptr, (const u8 *)(fde + 1) + *fde, ptrType);
- startLoc = adjustStartLoc(startLoc, m, s, ptrType, is_ehframe);
-
-@@ -632,12 +650,12 @@ static int unwind_frame(struct unwind_frame_info *frame,
- for (fde = table, tableSize = table_len; cie = NULL, tableSize > sizeof(*fde)
- && tableSize - sizeof(*fde) >= *fde; tableSize -= sizeof(*fde) + *fde, fde += 1 + *fde / sizeof(*fde)) {
- dbug_unwind(3, "fde=%lx tableSize=%d\n", (long)*fde, (int)tableSize);
-- cie = cie_for_fde(fde, table, is_ehframe);
-+ cie = cie_for_fde(fde, table, table_len, is_ehframe);
- if (cie == &bad_cie) {
- cie = NULL;
- break;
- }
-- if (cie == NULL || cie == &not_fde || (ptrType = fde_pointer_type(cie)) < 0)
-+ if (cie == NULL || cie == &not_fde || (ptrType = fde_pointer_type(cie, table, table_len)) < 0)
- continue;
-
- ptr = (const u8 *)(fde + 2);
-@@ -666,6 +684,12 @@ static int unwind_frame(struct unwind_frame_info *frame,
- state.cieEnd = ptr; /* keep here temporarily */
- ptr = (const u8 *)(cie + 2);
- end = (const u8 *)(cie + 1) + *cie;
-+
-+ /* end should fall within unwind table. */
-+ if (((void *)end) < table
-+ || ((void *)end) > ((void *)(table + table_len)))
-+ goto err;
-+
- frame->call_frame = 1;
- if ((state.version = *ptr) != 1) {
- dbug_unwind(1, "CIE version number is %d. 1 is supported.\n", state.version);
-@@ -723,6 +747,11 @@ static int unwind_frame(struct unwind_frame_info *frame,
- state.cieEnd = end;
- end = (const u8 *)(fde + 1) + *fde;
-
-+ /* end should fall within unwind table. */
-+ if (((void*)end) < table
-+ || ((void *)end) > ((void *)(table + table_len)))
-+ goto err;
-+
- /* skip augmentation */
- if (((const char *)(cie + 2))[1] == 'z') {
- uleb128_t augSize = get_uleb128(&ptr, end);
-diff --git a/runtime/unwind/unwind.h b/runtime/unwind/unwind.h
-index 285a3a3..023ea60 100644
---- a/runtime/unwind/unwind.h
-+++ b/runtime/unwind/unwind.h
-@@ -143,8 +143,10 @@ static unsigned long read_pointer(const u8 **pLoc,
- const void *end,
- signed ptrType);
- static const u32 bad_cie, not_fde;
--static const u32 *cie_for_fde(const u32 *fde, void *table, int is_ehframe);
--static signed fde_pointer_type(const u32 *cie);
-+static const u32 *cie_for_fde(const u32 *fde, void *table,
-+ uint32_t table_len, int is_ehframe);
-+static signed fde_pointer_type(const u32 *cie,
-+ void *table, uint32_t table_len);
-
-
- #endif /* STP_USE_DWARF_UNWINDER */
-diff --git a/translate.cxx b/translate.cxx
-index bc5d615..9d456bc 100644
---- a/translate.cxx
-+++ b/translate.cxx
-@@ -29,6 +29,11 @@ extern "C" {
- #include <elfutils/libdwfl.h>
- }
-
-+// Max unwind table size (debug or eh) per module. Somewhat arbitrary
-+// limit (a bit more than twice the .debug_frame size of my local
-+// vmlinux for 2.6.31.4-83.fc12.x86_64)
-+#define MAX_UNWIND_TABLE_SIZE (3 * 1024 * 1024)
-+
- using namespace std;
-
- struct var;
-@@ -4785,6 +4790,9 @@ dump_unwindsyms (Dwfl_Module *m,
- get_unwind_data (m, &debug_frame, &eh_frame, &debug_len, &eh_len, &eh_addr);
- if (debug_frame != NULL && debug_len > 0)
- {
-+ if (debug_len > MAX_UNWIND_TABLE_SIZE)
-+ throw semantic_error ("module debug unwind table size too big");
-+
- c->output << "#if defined(STP_USE_DWARF_UNWINDER) && defined(STP_NEED_UNWIND_DATA)\n";
- c->output << "static uint8_t _stp_module_" << stpmod_idx
- << "_debug_frame[] = \n";
-@@ -4802,6 +4810,9 @@ dump_unwindsyms (Dwfl_Module *m,
-
- if (eh_frame != NULL && eh_len > 0)
- {
-+ if (eh_len > MAX_UNWIND_TABLE_SIZE)
-+ throw semantic_error ("module eh unwind table size too big");
-+
- c->output << "#if defined(STP_USE_DWARF_UNWINDER) && defined(STP_NEED_UNWIND_DATA)\n";
- c->output << "static uint8_t _stp_module_" << stpmod_idx
- << "_eh_frame[] = \n";
diff --git a/dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-varargs.patch b/dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-varargs.patch
deleted file mode 100644
index 77c43ca2e8d7..000000000000
--- a/dev-util/systemtap/files/systemtap-1.0-CVE-2009-2911-varargs.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-https://bugzilla.redhat.com/show_bug.cgi?id=529175
-https://bugzilla.redhat.com/attachment.cgi?id=365293
-
-diff --git a/buildrun.cxx b/buildrun.cxx
-index 100cbc4..c86a442 100644
---- a/buildrun.cxx
-+++ b/buildrun.cxx
-@@ -200,6 +200,9 @@ compile_pass (systemtap_session& s)
-
- // o << "CFLAGS += -fno-unit-at-a-time" << endl;
-
-+ // 512 bytes should be enough for anybody
-+ o << "EXTRA_CFLAGS += $(call cc-option,-Wframe-larger-than=512)" << endl;
-+
- // Assumes linux 2.6 kbuild
- o << "EXTRA_CFLAGS += -Wno-unused -Werror" << endl;
- #if CHECK_POINTER_ARITH_PR5947
-diff --git a/testsuite/transko/varargs.stp b/testsuite/transko/varargs.stp
-new file mode 100755
-index 0000000..f38309a
---- /dev/null
-+++ b/testsuite/transko/varargs.stp
-@@ -0,0 +1,10 @@
-+#! stap -p3
-+
-+probe begin {
-+ // PR10750 enforces at most 32 print args
-+ println(1, 2, 3, 4, 5, 6, 7, 8,
-+ 9, 10, 11, 12, 13, 14, 15, 16,
-+ 17, 18, 19, 20, 21, 22, 23, 24,
-+ 25, 26, 27, 28, 29, 30, 31, 32,
-+ 33)
-+}
-diff --git a/testsuite/transok/varargs.stp b/testsuite/transok/varargs.stp
-new file mode 100755
-index 0000000..216166f
---- /dev/null
-+++ b/testsuite/transok/varargs.stp
-@@ -0,0 +1,9 @@
-+#! stap -p3
-+
-+probe begin {
-+ // PR10750 enforces at most 32 print args
-+ println(1, 2, 3, 4, 5, 6, 7, 8,
-+ 9, 10, 11, 12, 13, 14, 15, 16,
-+ 17, 18, 19, 20, 21, 22, 23, 24,
-+ 25, 26, 27, 28, 29, 30, 31, 32)
-+}
-diff --git a/translate.cxx b/translate.cxx
-index 04a9247..c73a5bd 100644
---- a/translate.cxx
-+++ b/translate.cxx
-@@ -4151,6 +4151,11 @@ c_unparser::visit_print_format (print_format* e)
- {
- stmt_expr block(*this);
-
-+ // PR10750: Enforce a reasonable limit on # of varargs
-+ // 32 varargs leads to max 256 bytes on the stack
-+ if (e->args.size() > 32)
-+ throw semantic_error("too many arguments to print", e->tok);
-+
- // Compute actual arguments
- vector<tmpvar> tmp;
-
diff --git a/dev-util/systemtap/systemtap-1.0-r1.ebuild b/dev-util/systemtap/systemtap-1.0-r1.ebuild
deleted file mode 100644
index f075570718ff..000000000000
--- a/dev-util/systemtap/systemtap-1.0-r1.ebuild
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-util/systemtap/systemtap-1.0-r1.ebuild,v 1.1 2009/10/31 15:40:13 swegener Exp $
-
-EAPI="2"
-
-inherit linux-info eutils
-
-DESCRIPTION="A linux trace/probe tool"
-HOMEPAGE="http://sourceware.org/systemtap/"
-if [[ ${PV} = *_p* ]] # is this a snaphot?
-then
- # see configure.ac to get the version of the snapshot
- SRC_URI="http://sources.redhat.com/${PN}/ftp/snapshots/${PN}-${PV/*_p/}.tar.bz2
- mirror://gentoo/${PN}-${PV/*_p/}.tar.bz2" # upstream only keeps four snapshot distfiles around
- S="${WORKDIR}"/src
-else
- SRC_URI="http://sources.redhat.com/${PN}/ftp/releases/${P}.tar.gz"
- # use default S for releases
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="sqlite"
-
-DEPEND=">=dev-libs/elfutils-0.142
- sys-libs/libcap
- sqlite? ( =dev-db/sqlite-3* )"
-RDEPEND="${DEPEND}
- virtual/linux-sources"
-
-CONFIG_CHECK="~KPROBES ~RELAY ~DEBUG_FS"
-ERROR_KPROBES="${PN} requires support for KProbes Instrumentation (KPROBES) - this can be enabled in 'Instrumentation Support -> Kprobes'."
-ERROR_RELAY="${PN} works with support for user space relay support (RELAY) - this can be enabled in 'General setup -> Kernel->user space relay support (formerly relayfs)'."
-ERROR_DEBUG_FS="${PN} works best with support for Debug Filesystem (DEBUG_FS) - this can be enabled in 'Kernel hacking -> Debug Filesystem'."
-
-src_prepare() {
- epatch "${FILESDIR}"/${P}-CVE-2009-2911-{varargs,dwarf,unwind}.patch
-}
-
-src_configure() {
- econf \
- --docdir=/usr/share/doc/${PF} \
- --without-rpm \
- --disable-server \
- --disable-docs \
- --disable-refdocs \
- --disable-grapher \
- $(use_enable sqlite) \
- || die "econf failed"
-}
-
-src_install() {
- emake install DESTDIR="${D}" || die "make install failed"
- dodoc AUTHORS HACKING NEWS README
-}
diff --git a/dev-util/systemtap/systemtap-1.1.ebuild b/dev-util/systemtap/systemtap-1.1.ebuild
deleted file mode 100644
index 875778568e3e..000000000000
--- a/dev-util/systemtap/systemtap-1.1.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-util/systemtap/systemtap-1.1.ebuild,v 1.1 2010/01/23 17:13:30 swegener Exp $
-
-EAPI="2"
-
-inherit linux-info
-
-DESCRIPTION="A linux trace/probe tool"
-HOMEPAGE="http://sourceware.org/systemtap/"
-if [[ ${PV} = *_p* ]] # is this a snaphot?
-then
- # see configure.ac to get the version of the snapshot
- SRC_URI="http://sources.redhat.com/${PN}/ftp/snapshots/${PN}-${PV/*_p/}.tar.bz2
- mirror://gentoo/${PN}-${PV/*_p/}.tar.bz2" # upstream only keeps four snapshot distfiles around
- S="${WORKDIR}"/src
-else
- SRC_URI="http://sources.redhat.com/${PN}/ftp/releases/${P}.tar.gz"
- # use default S for releases
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="sqlite"
-
-DEPEND=">=dev-libs/elfutils-0.142
- sys-libs/libcap
- sqlite? ( =dev-db/sqlite-3* )"
-RDEPEND="${DEPEND}
- virtual/linux-sources"
-
-CONFIG_CHECK="~KPROBES ~RELAY ~DEBUG_FS"
-ERROR_KPROBES="${PN} requires support for KProbes Instrumentation (KPROBES) - this can be enabled in 'Instrumentation Support -> Kprobes'."
-ERROR_RELAY="${PN} works with support for user space relay support (RELAY) - this can be enabled in 'General setup -> Kernel->user space relay support (formerly relayfs)'."
-ERROR_DEBUG_FS="${PN} works best with support for Debug Filesystem (DEBUG_FS) - this can be enabled in 'Kernel hacking -> Debug Filesystem'."
-
-src_configure() {
- econf \
- --docdir=/usr/share/doc/${PF} \
- --without-rpm \
- --disable-server \
- --disable-docs \
- --disable-refdocs \
- --disable-grapher \
- $(use_enable sqlite) \
- || die "econf failed"
-}
-
-src_install() {
- emake install DESTDIR="${D}" || die "make install failed"
- dodoc AUTHORS HACKING NEWS README
-}