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-all mailing list