Dan McGee wrote:
Note that chk_filedifference always returned a NEW list, thus the return value could always be freed by the calling function. Thus, your change here gave me a big fat segfault because you didn't dupe the list first. I've fixed this locally and replaced the return with a alpm_list_strdup(pA) call.
This segfault didn't get exposed until I made a *completely* unrelated change (removing a gettext call around a message that doesn't need to be gettexted), so it took some time to track down.
Lesson to be learned here: know whether your function allocates new objects or not, and ensure ALL return paths do it the same way. Then be sure to check that the calling function does a free if necessary.
Oh sorry, I totally overlooked that indeed.. If only it had segfaulted in my test case, I would have caught it immediatly. That's bad, I wanted to fix a minor bug and caused a much bigger one :p