Project

General

Profile

Bug #4215

pkcs11_tpm botches shared library initialization, murders its friends

Added by Rich Lowe about 7 years ago. Updated about 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
lib - userland libraries
Start date:
2013-10-16
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

pkcs11_tpm calls _init() in C_GetFunctionList(). This causes us to call all of our initializers twice, once on library load, once again later.

This is absolutely and devastatingly fatal if the runtime provides _init handlers.

Presumably, they meant to call api_init() and this is the result of poor renaming, but I can't work out why they would even do that, given we know it has been called when the library loaded, and that api_fini() will only be called on unload. Thus, I propose to fix it by just removing the call, rather than by adjusting it to a call to api_init() which will always re-open the system log (which I'll file a separate bug for) and immediately return.

This is the root cause of #4204.

#1

Updated by Rich Lowe about 7 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 80 to 100

Resolved in 9048537

Also available in: Atom PDF