diff options
author | Justin Bronder <jsbronder@gentoo.org> | 2009-01-18 21:12:50 +0000 |
---|---|---|
committer | Justin Bronder <jsbronder@gentoo.org> | 2009-01-18 21:12:50 +0000 |
commit | 9b37b667702138325749cc81596ee555e63de895 (patch) | |
tree | 4f94b3ff47cd95c5dbdd0dfba7f92ad72f68a290 /sys-cluster/ganglia/files | |
parent | Update DOCS per bug #254260. (diff) | |
download | gentoo-2-9b37b667702138325749cc81596ee555e63de895.tar.gz gentoo-2-9b37b667702138325749cc81596ee555e63de895.tar.bz2 gentoo-2-9b37b667702138325749cc81596ee555e63de895.zip |
Bump ganglia-3.1.1-r1. Patch added to prevent a buffer overflow. Gentoo #255366, Ganglia #223.
(Portage version: 2.2_rc14/cvs/Linux 2.6.27-gentoo-r2 x86_64)
Diffstat (limited to 'sys-cluster/ganglia/files')
-rw-r--r-- | sys-cluster/ganglia/files/ganglia-3.1.1-process_path-overflow.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sys-cluster/ganglia/files/ganglia-3.1.1-process_path-overflow.patch b/sys-cluster/ganglia/files/ganglia-3.1.1-process_path-overflow.patch new file mode 100644 index 000000000000..8b79511b2e56 --- /dev/null +++ b/sys-cluster/ganglia/files/ganglia-3.1.1-process_path-overflow.patch @@ -0,0 +1,39 @@ +Index: gmetad/server.c +=================================================================== +--- gmetad/server.c (revision 1949) ++++ gmetad/server.c (working copy) +@@ -370,14 +370,13 @@ + + /* sacerdoti: This function does a tree walk while respecting the filter path. + * Will return valid XML even if we have chosen a subtree. Since tree depth is +- * bounded, this function guarantees O(1) search time. The recursive structure +- * does not require any memory allocations. ++ * bounded, this function guarantees O(1) search time. + */ + static int + process_path (client_t *client, char *path, datum_t *myroot, datum_t *key) + { + char *p, *q, *pathend; +- char element[256]; ++ char *element; + int rc, len; + datum_t *found; + datum_t findkey; +@@ -419,6 +418,9 @@ + if (!q) q=pathend; + + len = q-p; ++ element = malloc(len + 1); ++ if ( element == NULL ) ++ return 1; + strncpy(element, p, len); + element[len] = '\0'; + +@@ -440,6 +442,7 @@ + { + rc = process_path(client, 0, myroot, NULL); + } ++ free(element); + } + if (rc) return 1; + |