bug fix: in copy_audit_data, allocate memory depending on src, not dst
bug fix: properly initialize the non-POD members of the lda struct
When constructing the lda object, better avoid placement new and rather use just plain old new (pun intended).
Rationale: placement new should be used only when really necessary. (http://www.parashift.com/c++-faq/placement-new.html)
Drawback: if new POD members are added, they need to be manually zeroed here (or, preferably, in the lda struct's constructor).