)]}'
{
  "commit": "c4ef7a9de31276365e7350fb38427af0b16dc48d",
  "tree": "129d4f7d8014fb04035307c58d8c67d8829521b1",
  "parents": [
    "6fc21f630cb6cdd56d91e05e39aa1ed30f655b37"
  ],
  "author": {
    "name": "Gilles Peskine",
    "email": "Gilles.Peskine@arm.com",
    "time": "Tue Sep 17 19:04:38 2019 +0200"
  },
  "committer": {
    "name": "Gilles Peskine",
    "email": "Gilles.Peskine@arm.com",
    "time": "Tue Feb 11 19:26:28 2020 +0100"
  },
  "message": "Add a test component with malloc(0) returning NULL\n\nExercise the library functions with calloc returning NULL for a size\nof 0. Make this a separate job with UBSan (and ASan) to detect\nplaces where we try to dereference the result of calloc(0) or to do\nthings like\n\n    buf \u003d calloc(size, 1);\n    if (buf \u003d\u003d NULL \u0026\u0026 size !\u003d 0) return INSUFFICIENT_MEMORY;\n    memcpy(buf, source, size);\n\nwhich has undefined behavior when buf is NULL at the memcpy call even\nif size is 0.\n\nThis is needed because other test components jobs either use the system\nmalloc which returns non-NULL on Linux and FreeBSD, or the\nmemory_buffer_alloc malloc which returns NULL but does not give as\nuseful feedback with ASan (because the whole heap is a single C\nobject).\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ed74eda63aec4e598694aa6b1ec06b88d047d474",
      "new_mode": 33188,
      "new_path": "tests/configs/config-wrapper-malloc-0-null.h"
    },
    {
      "type": "modify",
      "old_id": "cc19ab2bbf05aa2b362bd433e517e8800a088def",
      "old_mode": 33261,
      "old_path": "tests/scripts/all.sh",
      "new_id": "173c0968787031a15874a4b677d3c585f942ef35",
      "new_mode": 33261,
      "new_path": "tests/scripts/all.sh"
    }
  ]
}
