svn commit: r279862 - head/cddl/contrib/opensolaris/common/ctf
Mark Johnston
markj at FreeBSD.org
Tue Mar 10 20:52:04 UTC 2015
Author: markj
Date: Tue Mar 10 20:52:03 2015
New Revision: 279862
URL: https://svnweb.freebsd.org/changeset/base/279862
Log:
ctf_discard(): fetch the next list element before restarting the loop. If
we end up skipping a dynamic type because it has already been committed to
the container, we would previously either set the loop variable to an
uninitialized local variable, or set it to itself, resulting in an infinite
loop.
MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division
Modified:
head/cddl/contrib/opensolaris/common/ctf/ctf_create.c
Modified: head/cddl/contrib/opensolaris/common/ctf/ctf_create.c
==============================================================================
--- head/cddl/contrib/opensolaris/common/ctf/ctf_create.c Tue Mar 10 20:43:16 2015 (r279861)
+++ head/cddl/contrib/opensolaris/common/ctf/ctf_create.c Tue Mar 10 20:52:03 2015 (r279862)
@@ -583,10 +583,10 @@ ctf_discard(ctf_file_t *fp)
return (0); /* no update required */
for (dtd = ctf_list_prev(&fp->ctf_dtdefs); dtd != NULL; dtd = ntd) {
+ ntd = ctf_list_prev(dtd);
if (dtd->dtd_type <= fp->ctf_dtoldid)
continue; /* skip types that have been committed */
- ntd = ctf_list_prev(dtd);
ctf_dtd_delete(fp, dtd);
}
More information about the svn-src-head
mailing list