)]}'
{
  "commit": "9ac42ed8fc915c7447a88c200eda8e2e62fbabb4",
  "tree": "4fb70d006989b8f007db475c6674e0b6b5ffa4f9",
  "parents": [
    "1ad9bdf253c7ce1568abeafd4aa3308bd6ca684c"
  ],
  "author": {
    "name": "Richard Levitte",
    "email": "levitte@openssl.org",
    "time": "Fri Dec 17 12:56:24 1999 +0000"
  },
  "committer": {
    "name": "Richard Levitte",
    "email": "levitte@openssl.org",
    "time": "Fri Dec 17 12:56:24 1999 +0000"
  },
  "message": "Rebuild of the OpenSSL memory allocation and deallocation routines.\nWith this change, the following is provided and present at all times\n(meaning CRYPTO_MDEBUG is no longer required to get this functionality):\n\n  - hooks to provide your own allocation and deallocation routines.\n    They have to have the same interface as malloc(), realloc() and\n    free().  They are registered by calling CRYPTO_set_mem_functions()\n    with the function pointers.\n\n  - hooks to provide your own memory debugging routines.  The have to\n    have the same interface as as the CRYPTO_dbg_*() routines.  They\n    are registered by calling CRYPTO_set_mem_debug_functions() with\n    the function pointers.\n\nI moved everything that was already built into OpenSSL and did memory\ndebugging to a separate file (mem_dbg.c), to make it clear what is\nwhat.\n\nWith this, the relevance of the CRYPTO_MDEBUG has changed.  The only\nthing in crypto/crypto.h that it affects is the definition of the\nMemCheck_start and MemCheck_stop macros.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b6348e37a4cb2164ff06ab549f5e61beb90d4947",
      "old_mode": 33188,
      "old_path": "CHANGES",
      "new_id": "e158dcd89ea530f3435c3eb883ffd6db7e38a404",
      "new_mode": 33188,
      "new_path": "CHANGES"
    },
    {
      "type": "modify",
      "old_id": "d96114688ce51cc81475bea52b22562b74374006",
      "old_mode": 33188,
      "old_path": "crypto/Makefile.ssl",
      "new_id": "d450ab77c3941e3c23ff0a52b437d11b0aae3b5d",
      "new_mode": 33188,
      "new_path": "crypto/Makefile.ssl"
    },
    {
      "type": "modify",
      "old_id": "6b9ebabf011a579fbbdc5d3c9bdd14291d0b666b",
      "old_mode": 33188,
      "old_path": "crypto/crypto-lib.com",
      "new_id": "149906e2f7bf7f52b810747ba2c944e4937d31d2",
      "new_mode": 33188,
      "new_path": "crypto/crypto-lib.com"
    },
    {
      "type": "modify",
      "old_id": "3bc9b1a9afa9ec60c695530e3ceb7e0ba32a1707",
      "old_mode": 33188,
      "old_path": "crypto/crypto.h",
      "new_id": "0a76c771a74f44813fd2b77d376ac7ad873aeada",
      "new_mode": 33188,
      "new_path": "crypto/crypto.h"
    },
    {
      "type": "modify",
      "old_id": "e2688994ae6104b1c1f4a61089ea65c751c275e9",
      "old_mode": 33188,
      "old_path": "crypto/mem.c",
      "new_id": "7d6b5af0b1b11402a60c1c2729431c4e37e443b8",
      "new_mode": 33188,
      "new_path": "crypto/mem.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f0032d711b8f4232c48b7a7e315fb4a2316dd5f0",
      "new_mode": 33188,
      "new_path": "crypto/mem_dbg.c"
    }
  ]
}
