diff options
author | Adam Jackson <ajax@freedesktop.org> | 2006-04-06 23:50:44 +0000 |
---|---|---|
committer | Adam Jackson <ajax@freedesktop.org> | 2006-04-06 23:50:44 +0000 |
commit | 282a89c5bbd0ec3490d5cbfbe6807e95234adaf5 (patch) | |
tree | e3f2930334612b29988798fd10ea45576e5034d5 | |
parent | 92e11f943c8363148f7e5836425706b00078dfa6 (diff) | |
download | glu-282a89c5bbd0ec3490d5cbfbe6807e95234adaf5.tar.gz |
Coverity #1083: Fix a use after free case.
-rw-r--r-- | src/libtess/dict.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/libtess/dict.c b/src/libtess/dict.c index fac8032..c20f694 100644 --- a/src/libtess/dict.c +++ b/src/libtess/dict.c @@ -35,8 +35,8 @@ /* ** Author: Eric Veach, July 1994. ** -** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $ -** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libtess/dict.c,v 1.1 2001/03/17 00:25:41 brianp Exp $ +** $Date: 2006/04/06 23:50:44 $ $Revision: 1.2 $ +** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libtess/dict.c,v 1.2 2006/04/06 23:50:44 ajax Exp $ */ #include <stddef.h> @@ -68,9 +68,13 @@ Dict *dictNewDict( void *frame, void dictDeleteDict( Dict *dict ) { DictNode *node; + int done = 0; - for( node = dict->head.next; node != &dict->head; node = node->next ) { + for( node = dict->head.next; ; node = node->next ) { + done = (node == &dict->head); memFree( node ); + if (done) + break; } memFree( dict ); } |