)]}'
{
  "commit": "06030dbaf3b6c5801dcdb7fe4fbab3b91c8da84a",
  "tree": "8b74374786d0408b81f5f42ed6cacc8f6d7fd3b9",
  "parents": [
    "a447da7d00410278c90d3576782a43f8b675d7be"
  ],
  "author": {
    "name": "Daniel Borkmann",
    "email": "daniel@iogearbox.net",
    "time": "Fri Jun 15 03:07:46 2018 +0200"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Fri Jun 15 09:14:30 2018 -0700"
  },
  "message": "tls: fix waitall behavior in tls_sw_recvmsg\n\nCurrent behavior in tls_sw_recvmsg() is to wait for incoming tls\nmessages and copy up to exactly len bytes of data that the user\nprovided. This is problematic in the sense that i) if no packet\nis currently queued in strparser we keep waiting until one has been\nprocessed and pushed into tls receive layer for tls_wait_data() to\nwake up and push the decrypted bits to user space. Given after\ntls decryption, we\u0027re back at streaming data, use sock_rcvlowat()\nhint from tcp socket instead. Retain current behavior with MSG_WAITALL\nflag and otherwise use the hint target for breaking the loop and\nreturning to application. This is done if currently no ctx-\u003erecv_pkt\nis ready, otherwise continue to process it from our strparser\nbacklog.\n\nFixes: c46234ebb4d1 (\"tls: RX path for ktls\")\nSigned-off-by: Daniel Borkmann \u003cdaniel@iogearbox.net\u003e\nAcked-by: Dave Watson \u003cdavejwatson@fb.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2945a3bd538c88bab27a527d7a28cb49d779884b",
      "old_mode": 33188,
      "old_path": "net/tls/tls_sw.c",
      "new_id": "f127fac88acfe0046b0a7dd55bab4d6d486de105",
      "new_mode": 33188,
      "new_path": "net/tls/tls_sw.c"
    }
  ]
}
