Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Nov 2014 04:10:23 +0000 (UTC)
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r274565 - head/cddl/contrib/opensolaris/tools/ctf/cvt
Message-ID:  <201411160410.sAG4AN9e030198@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markj
Date: Sun Nov 16 04:10:23 2014
New Revision: 274565
URL: https://svnweb.freebsd.org/changeset/base/274565

Log:
  Remove an incorrect optimization. The type IDs of each member of a struct or
  union must be checked when determine whether two types are equivalent. This
  bug could cause ctfmerge(1) to incorrectly merge distinct types.
  
  Reviewed by:	Robert Mustacchi <rm@joyent.com>
  MFC after:	2 weeks
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c

Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c
==============================================================================
--- head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c	Sun Nov 16 04:07:53 2014	(r274564)
+++ head/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c	Sun Nov 16 04:10:23 2014	(r274565)
@@ -287,19 +287,11 @@ equiv_su(tdesc_t *stdp, tdesc_t *ttdp, e
 
 	while (ml1 && ml2) {
 		if (ml1->ml_offset != ml2->ml_offset ||
-		    strcmp(ml1->ml_name, ml2->ml_name) != 0)
+		    strcmp(ml1->ml_name, ml2->ml_name) != 0 ||
+		    ml1->ml_size != ml2->ml_size ||
+		    !equiv_node(ml1->ml_type, ml2->ml_type, ed))
 			return (0);
 
-		/*
-		 * Don't do the recursive equivalency checking more than
-		 * we have to.
-		 */
-		if (olm1 == NULL || olm1->ml_type->t_id != ml1->ml_type->t_id) {
-			if (ml1->ml_size != ml2->ml_size ||
-			    !equiv_node(ml1->ml_type, ml2->ml_type, ed))
-				return (0);
-		}
-
 		olm1 = ml1;
 		ml1 = ml1->ml_next;
 		ml2 = ml2->ml_next;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201411160410.sAG4AN9e030198>