Skip to content
  1. Sep 02, 2001
  2. Sep 01, 2001
    • Geoff Thorpe's avatar
      Note the "ex_data" changes. · 36026dfc
      Geoff Thorpe authored
      36026dfc
    • Geoff Thorpe's avatar
      Make the necessary changes to work with the recent "ex_data" overhaul. · 79aa04ef
      Geoff Thorpe authored
      See the commit log message for that for more information.
      
      NB: X509_STORE_CTX's use of "ex_data" support was actually misimplemented
      (initialisation by "memset" won't/can't/doesn't work). This fixes that but
      requires that X509_STORE_CTX_init() be able to handle errors - so its
      prototype has been changed to return 'int' rather than 'void'. All uses of
      that function throughout the source code have been tracked down and
      adjusted.
      79aa04ef
    • Geoff Thorpe's avatar
      First step in fixing "ex_data" support. Warning: big commit log ... · 3a079997
      Geoff Thorpe authored
      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
    • Geoff Thorpe's avatar
      Only OPENSSL_free() non-NULL pointers. · e19ea557
      Geoff Thorpe authored
      e19ea557
    • Ulf Möller's avatar
      undo, didn't work · 8716dbea
      Ulf Möller authored
      8716dbea
    • Ulf Möller's avatar
      *** empty log message *** · e9bc66c8
      Ulf Möller authored
      e9bc66c8
    • Ulf Möller's avatar
      strsep implementation to allow the file to compile on non-BSD systems · c078798c
      Ulf Möller authored
      Submitted by: "Brian Havard" <brianh@kheldar.apana.org.au>
      c078798c
    • Ulf Möller's avatar
      make update · de73cca9
      Ulf Möller authored
      de73cca9
    • Ulf Möller's avatar
      zlib default was broken on most platforms. · b1051789
      Ulf Möller authored
      -mcpu=i486 is new as of gcc 2.95, and if you have that, you wouldn't
      want to optimize for 486 anyway.
      b1051789
  3. Aug 28, 2001
  4. Aug 27, 2001
  5. Aug 26, 2001
  6. Aug 25, 2001
  7. Aug 24, 2001
  8. Aug 23, 2001
  9. Aug 22, 2001
  10. Aug 21, 2001