)]}'
{
  "commit": "179045166beaa9fc8aa20f998e72843b164d98ac",
  "tree": "61bb087febe6965c6564b25e74d2f4ededac5cde",
  "parents": [
    "8540ec76d943aa5083abbea4e52488db64489e01"
  ],
  "author": {
    "name": "Sergey Kandaurov",
    "email": "pluknet@nginx.com",
    "time": "Thu Jul 07 21:03:21 2016 +0300"
  },
  "committer": {
    "name": "Sergey Kandaurov",
    "email": "pluknet@nginx.com",
    "time": "Thu Jul 07 21:03:21 2016 +0300"
  },
  "message": "HTTP/2: avoid left-shifting signed integer into the sign bit.\n\nOn non-aligned platforms, properly cast argument before left-shifting it in\nngx_http_v2_parse_uint32 that is used with u_char.  Otherwise it propagates\nto int to hold the value and can step over the sign bit.  Usually, on known\ncompilers, this results in negation.  Furthermore, a subsequent store into a\nwider type, that is ngx_uint_t on 64-bit platforms, results in sign-extension.\n\nIn practice, this can be observed in debug log as a very large exclusive bit\nvalue, when client sent PRIORITY frame with exclusive bit set:\n\n: *14 http2 PRIORITY frame sid:5 on 1 excl:8589934591 weight:17\n\nFound with UndefinedBehaviorSanitizer.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9e738aa55749f8b6a73ce1b73fa28a38384232e5",
      "old_mode": 33188,
      "old_path": "src/http/v2/ngx_http_v2.h",
      "new_id": "d712d381697c3342d3bc77a055389e8741036646",
      "new_mode": 33188,
      "new_path": "src/http/v2/ngx_http_v2.h"
    }
  ]
}
