Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Oct 2013 21:25:55 +0000 (UTC)
From:      Jilles Tjoelker <jilles@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r256060 - head/usr.sbin/kldxref
Message-ID:  <201310042125.r94LPtVK081348@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jilles
Date: Fri Oct  4 21:25:55 2013
New Revision: 256060
URL: http://svnweb.freebsd.org/changeset/base/256060

Log:
  kldxref: Do not depend on the directory order.
  
  Sort the filenames to get a consistent result between machines of the same
  architecture.
  
  Also, sort FTS_D entries after other entries so kldxref -R works properly in
  the uncommon case that a directory contains both subdirectories and modules.
  Previously, this may have happened to work, depending on the order of files
  in the directory.
  
  PR:		bin/182098
  Submitted by:	Derek Schrock (original version)
  Tested by:	Derek Schrock
  Approved by:	re (delphij)
  MFC after:	1 week

Modified:
  head/usr.sbin/kldxref/kldxref.c

Modified: head/usr.sbin/kldxref/kldxref.c
==============================================================================
--- head/usr.sbin/kldxref/kldxref.c	Fri Oct  4 19:57:47 2013	(r256059)
+++ head/usr.sbin/kldxref/kldxref.c	Fri Oct  4 21:25:55 2013	(r256060)
@@ -274,6 +274,16 @@ usage(void)
 	exit(1);
 }
 
+int 
+compare(const FTSENT *const *a, const FTSENT *const *b)
+{
+	if ((*a)->fts_info == FTS_D && (*b)->fts_info != FTS_D)
+		return 1;
+	if ((*a)->fts_info != FTS_D && (*b)->fts_info == FTS_D)
+		return -1;
+	return strcmp((*a)->fts_name, (*b)->fts_name);
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -315,7 +325,7 @@ main(int argc, char *argv[])
 		err(1, "%s", argv[0]);
 	}
 
-	ftsp = fts_open(argv, fts_options, 0);
+	ftsp = fts_open(argv, fts_options, compare);
 	if (ftsp == NULL)
 		exit(1);
 



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