Tags: patch Hi Daniel,
If it is allowed, then I would suggest to copy the node in Curl_splayinsert to make sure that memory doesn't get out of scope in a calling function. See the attached patch. My testcase did not crash anymore, but of course the problem is not _that_ much reproducable. Since the splay functions seem to be used internally only, this is surely just a workaround, if it helps at all. Hope this helps. Regards Harri
--- curl-7.15.4.orig/lib/splay.c +++ curl-7.15.4/lib/splay.c @@ -23,7 +23,10 @@ #include <stdio.h> #include <stdlib.h> + +#include <malloc.h> +#include <string.h> #include "splay.h" @@ -99,6 +102,10 @@ if (node == NULL) return t; + struct Curl_tree *newnode = malloc(sizeof(struct Curl_tree)); + memcpy(newnode, node, sizeof(*node)); + node = newnode; + if (t != NULL) { t = Curl_splay(i,t); if (compare(i, t->key)==0) {
signature.asc
Description: OpenPGP digital signature