Am Dienstag, 10. März 2009 06:53:34 schrieben Sie:
Please provide steps to reproduce the segfault, thanks.
Hi Howard,
I tried to reproduce the problem on either OpenSUSE 11.1 or Fedora but I could not reproduce the crash.
The crash was reproducable with OpenPKG though I guess the crash depends on the version of bdb beeing used. The code fetches an transaction from an internal table which might have slightly different semantics with regards to initialization depending on bdb version.
Anyway if you look at the rather trivial patch you will see that it indeed solves a problem independent of bdb version used so the code does not depend on a side effect anymore.
On one hand the void pointer *data should not be dangeling and therefore initialization with NULL is correct.
On the other hand TXN_ABORT() must not be called with potentially dangeling pointers and therefor a trivial check for the validitiy of the pointer is a good idea.
Yours, --martin