----- Original Message ----- > > > > > I was running valgrind to check some of my own code and then stumbled > upon the following: > > In function unload_extension (extensions.c) last loop: > > for (ext = extension_table, found = FALSE; ext; ext = ext->next) { > > in the loop free(ext) is performed and then ext is accessed again in > the loop control statement. Fix: > > - either test for “!found && ext” in loop control or > - break the loop if the free statement has executed. > > Note that there is also a risk that the loop continues (with current > code), even if found becomes true, as ext->next is not changed. Jan, Thanks for catching that -- I'll just have it break the loop when found. But given that the ext->next pointer is near the end of the structure, it apparently remains unmodified by the free() bookkeeping, and the for loop just harmlessly continues with the ext->next setting since it was not changed. At least, in my testing it works regardless whether the removed entry is at the beginning, middle, or at the end of the list. Queued for crash-6.1.2. Thanks again, Dave -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility