Blob Blame History Raw
--- crash-7.1.5/symbols.c.orig
+++ crash-7.1.5/symbols.c
@@ -1418,9 +1418,11 @@ store_module_symbols_v1(ulong total, int
 		for (i = first = last = 0; i < nsyms; i++) {
 			modsym = (struct module_symbol *)
 			    (modsymbuf + (i * sizeof(struct module_symbol)));
-			if (!first)
+			if (!first
+			    || first > (ulong)modsym->name)
 				first = (ulong)modsym->name;
-			last = (ulong)modsym->name;
+			if ((ulong)modsym->name > last)
+				last = (ulong)modsym->name;
 		}
 
 		if (last > first) {
@@ -1441,15 +1443,11 @@ store_module_symbols_v1(ulong total, int
 		} else
 			strbuf = NULL;
 
-		for (i = first = last = 0; i < nsyms; i++) {
+		for (i = 0; i < nsyms; i++) {
 
 			modsym = (struct module_symbol *)
 			    (modsymbuf + (i * sizeof(struct module_symbol)));
 
-			if (!first) 
-				first = (ulong)modsym->name;
-			last = (ulong)modsym->name;
-
 			BZERO(buf1, BUFSIZE);
 
 			if (strbuf) 
@@ -1722,9 +1720,11 @@ store_module_symbols_v2(ulong total, int
 		for (i = first = last = 0; i < nsyms; i++) {
 			modsym = (struct kernel_symbol *)
 			    (modsymbuf + (i * sizeof(struct kernel_symbol)));
-			if (!first)
+			if (!first
+			    || first > (ulong)modsym->name)
 				first = (ulong)modsym->name;
-			last = (ulong)modsym->name;
+			if ((ulong)modsym->name > last)
+				last = (ulong)modsym->name;
 		}
 
 		if (last > first) {
@@ -1745,15 +1745,12 @@ store_module_symbols_v2(ulong total, int
 		} else 
 			strbuf = NULL;
 
-		for (i = first = last = 0; i < nsyms; i++) {
+
+		for (i = 0; i < nsyms; i++) {
 
 			modsym = (struct kernel_symbol *)
 			    (modsymbuf + (i * sizeof(struct kernel_symbol)));
 
-			if (!first) 
-				first = (ulong)modsym->name;
-			last = (ulong)modsym->name;
-
 			BZERO(buf1, BUFSIZE);
 
 			if (strbuf) 
@@ -1797,9 +1794,11 @@ store_module_symbols_v2(ulong total, int
 		for (i = first = last = 0; i < ngplsyms; i++) {
 			modsym = (struct kernel_symbol *)
 			    (modsymbuf + (i * sizeof(struct kernel_symbol)));
-			if (!first)
+			if (!first
+			    || first > (ulong)modsym->name)
 				first = (ulong)modsym->name;
-			last = (ulong)modsym->name;
+			if ((ulong)modsym->name > last)
+				last = (ulong)modsym->name;
 		}
 
 		if (last > first) {
@@ -1820,15 +1819,11 @@ store_module_symbols_v2(ulong total, int
 		} else 
 			strbuf = NULL;
 
-		for (i = first = last = 0; i < ngplsyms; i++) {
+		for (i = 0; i < ngplsyms; i++) {
 
 			modsym = (struct kernel_symbol *)
 			    (modsymbuf + (i * sizeof(struct kernel_symbol)));
 
-			if (!first) 
-				first = (ulong)modsym->name;
-			last = (ulong)modsym->name;
-
 			BZERO(buf1, BUFSIZE);
 
 			if (strbuf)