Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 44336610aa0389c8ba3c10f96d5691f2 > files > 8

ltrace-0.5-19.45svn.fc15.src.rpm

--- ltrace-0.5/elf.c~	2010-03-25 14:07:20.000000000 +0100
+++ ltrace-0.5/elf.c	2010-03-31 13:11:35.000000000 +0200
@@ -435,6 +435,7 @@ struct library_symbol *read_elf(struct p
 	struct library_symbol *library_symbols = NULL;
 	struct ltelf lte[MAX_LIBRARY + 1];
 	size_t i;
+	struct opt_x_t *opt_x_loc = opt_x;
 	struct opt_x_t *xptr;
 	struct library_symbol **lib_tail = NULL;
 	struct opt_x_t *main_cheat;
@@ -502,11 +503,11 @@ struct library_symbol *read_elf(struct p
 		main_cheat = (struct opt_x_t *)malloc(sizeof(struct opt_x_t));
 		if (main_cheat == NULL)
 			error(EXIT_FAILURE, 0, "Couldn't allocate memory");
-		main_cheat->next = opt_x;
+		main_cheat->next = opt_x_loc;
 		main_cheat->found = 0;
 		main_cheat->name = PLTs_initialized_by_here;
 
-		for (xptr = opt_x; xptr; xptr = xptr->next)
+		for (xptr = opt_x_loc; xptr; xptr = xptr->next)
 			if (strcmp(xptr->name, PLTs_initialized_by_here) == 0
 			    && main_cheat) {
 				free(main_cheat);
@@ -514,7 +515,7 @@ struct library_symbol *read_elf(struct p
 				break;
 			}
 		if (main_cheat)
-			opt_x = main_cheat;
+			opt_x_loc = main_cheat;
 	}
 #endif
 
@@ -533,7 +534,7 @@ struct library_symbol *read_elf(struct p
 		if (!addr)
 			continue;
 
-		for (xptr = opt_x; xptr; xptr = xptr->next)
+		for (xptr = opt_x_loc; xptr; xptr = xptr->next)
 			if (xptr->name && strcmp(xptr->name, name) == 0) {
 				/* FIXME: Should be able to use &library_symbols as above.  But
 				   when you do, none of the real library symbols cause breaks. */
@@ -543,7 +544,7 @@ struct library_symbol *read_elf(struct p
 				break;
 			}
 	}
-	for (xptr = opt_x; xptr; xptr = xptr->next)
+	for (xptr = opt_x_loc; xptr; xptr = xptr->next)
 		if ( ! xptr->found) {
 			char *badthing = "WARNING";
 #ifdef PLT_REINITALISATION_BP

Diff finished.  Wed Mar 31 13:12:38 2010