1. 02 9月, 2001 1 次提交
    • G
      First step in fixing "ex_data" support. Warning: big commit log ... · 3a079997
      Geoff Thorpe 提交于
      Currently, this change merely addresses where ex_data indexes are stored
      and managed, and thus fixes the thread-safety issues that existed at that
      level. "Class" code (eg. RSA, DSA, etc) no longer store their own STACKS
      and per-class index counters - all such data is stored inside ex_data.c. So
      rather than passing both STACK+counter to index-management ex_data
      functions, a 'class_index' is instead passed to indicate the class (eg.
      CRYPTO_EX_INDEX_RSA). New classes can be dynamically registered on-the-fly
      and this is also thread-safe inside ex_data.c (though whether the caller
      manages the return value in a thread-safe way is not addressed).
      
      This does not change the "get/set" functions on individual "ex_data"
      structures, and so thread-safety at that level isn't (yet) assured.
      Likewise, the method of getting and storing per-class indexes has not
      changed, so locking may still be required at the "caller" end but is
      nonetheless thread-safe inside "ex_data"'s internal implementation.
      Typically this occurs when code implements a new method of some kind and
      stores its own per-class index in a global variable without locking the
      setting and usage of that variable. If the code in question is likely to be
      used in multiple threads, locking the setting and use of that index is
      still up to the code in question. Possible fixes to this are being
      sketched, but definitely require more major changes to the API itself than
      this change undertakes.
      
      The underlying implementation in ex_data.c has also been modularised so
      that alternative "ex_data" implementations (that control all access to
      state) can be plugged in. Eg. a loaded module can have its implementation
      set to that of the application loaded it - the result being that
      thread-safety and consistency of "ex_data" classes and indexes can be
      maintained in the same place rather than the loaded module using its own
      copy of ex_data support code and state.
      
      Due to the centralisation of "state" with this change, cleanup of all
      "ex_data" state can now be performed properly. Previously all allocation of
      ex_data state was guaranteed to leak - and MemCheck_off() had been used to
      avoid it flagging up the memory debugging. A new function has been added to
      perfrom all this cleanup, CRYPTO_cleanup_all_ex_data(). The "openssl"
      command(s) have been changed to use this cleanup, as have the relevant test
      programs. External application code may want to do so too - failure to
      cleanup will not induce more memory leaking than was the case before, but
      the memory debugging is not tricked into hiding it any more so it may
      "appear" where it previously did not.
      3a079997
  2. 26 7月, 2001 1 次提交
  3. 19 6月, 2001 1 次提交
  4. 01 6月, 2001 2 次提交
  5. 07 5月, 2001 1 次提交
  6. 20 2月, 2001 1 次提交
  7. 16 12月, 2000 1 次提交
  8. 27 10月, 2000 1 次提交
  9. 21 6月, 2000 1 次提交
    • D
      · 7ef82068
      Dr. Stephen Henson 提交于
      Handle ASN1_SET_OF and PKCS12_STACK_OF using function
      casts in the same way as STACK_OF.
      7ef82068
  10. 20 6月, 2000 1 次提交
  11. 19 6月, 2000 2 次提交
  12. 18 6月, 2000 1 次提交
    • R
      Add support for dynamically created and destroyed mutexes. This will · c7922304
      Richard Levitte 提交于
      be needed in some ENGINE code, and might serve elsewhere as well.
      Note that it's implemented in such a way that the locking itself is
      done through the same CRYPTO_lock function as the static locks.
      
      WARNING: This is currently experimental and untested code (it will get
      tested soon, though :-)).
      c7922304
  13. 02 6月, 2000 1 次提交
    • R
      There have been a number of complaints from a number of sources that names · 26a3a48d
      Richard Levitte 提交于
      like Malloc, Realloc and especially Free conflict with already existing names
      on some operating systems or other packages.  That is reason enough to change
      the names of the OpenSSL memory allocation macros to something that has a
      better chance of being unique, like prepending them with OPENSSL_.
      
      This change includes all the name changes needed throughout all C files.
      26a3a48d
  14. 05 4月, 2000 1 次提交
    • G
      This commit ties the new DSO code (crypto/dso/) into the build for a · 9ec0126e
      Geoff Thorpe 提交于
      variety of platforms. A few are missing, and they will be added in
      eventually, but as this is new stuff, it was better to not break lots of
      platforms in one go that we can't easily test. The changes to "Configure"
      should illustrate how to add support to other systems if you feel like
      having a go.
      
      NB: I'll add something shortly to allow you to add "dlfcn.h" support on
      those platforms that don't have (or need) a dlfcn.h header file. (The
      symbol for Configure will probably by "dlfcn_no_h").
      
      Thanks to Richard Levitte, who is responsible for the dso_dl.c support,
      understanding the trickier aspects of the build process, and giving great
      feedback on everything else.
      
      [Don't use this stuff if you're easily offended by changes to the
      interface or behaviour - it's still work in progress.]
      
      PR:
      9ec0126e
  15. 20 12月, 1999 1 次提交
  16. 12 11月, 1999 1 次提交
    • R
      Two changes have been made: · 1f575f1b
      Richard Levitte 提交于
        1. Added code to the memory leak detecting code to give the user the
           possibility to add information, thereby forming a traceback.
      
        2. Make the memory leak detecting code multithread-safe.
      
      The idea is that we're actually dealing with two separate critical
      sections, one containing the hash tables with the information, the
      other containing the current memory checking mode.  Those should not
      be handled with the same lock, especially since their handling overlap.
      Hence, the added second lock.
      1f575f1b
  17. 24 8月, 1999 1 次提交
  18. 22 7月, 1999 1 次提交
  19. 19 6月, 1999 1 次提交
  20. 14 5月, 1999 2 次提交
  21. 27 4月, 1999 2 次提交
  22. 24 4月, 1999 1 次提交
  23. 20 4月, 1999 1 次提交
  24. 18 4月, 1999 1 次提交
  25. 21 12月, 1998 3 次提交