)]}'
{
  "commit": "64233bffbb50f12e576c61d1698a573c8033004a",
  "tree": "f7dfba61e92688189150549d892617e7ae1869ab",
  "parents": [
    "ba645c16026ed733a51f904df34756f61bc155fc"
  ],
  "author": {
    "name": "Oliver Dawid",
    "email": "oliver@helios.de",
    "time": "Tue Sep 27 16:11:29 2005 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Tue Sep 27 16:11:29 2005 -0700"
  },
  "message": "[APPLETALK]: Fix broadcast bug.\n\nFrom: Oliver Dawid \u003coliver@helios.de\u003e\n\nwe found a bug in net/appletalk/ddp.c concerning broadcast packets. In \nkernel 2.4 it was working fine. The bug first occured 4 years ago when \nswitching to new SNAP layer handling. This bug can be splitted up into a \nsending(1) and reception(2) problem:\n\nSending(1)\nIn kernel 2.4 broadcast packets were sent to a matching ethernet device \nand atalk_rcv() was called to receive it as \"loopback\" (so loopback \npackets were shortcutted and handled in DDP layer).\n\nWhen switching to the new SNAP structure, this shortcut was removed and \nthe loopback packet was send to SNAP layer. The author forgot to replace \nthe remote device pointer by the loopback device pointer before sending \nthe packet to SNAP layer (by calling ddp_dl-\u003erequest() ) therfor the \npacket was not sent back by underlying layers to ddp\u0027s atalk_rcv().\n\nReception(2)\nIn atalk_rcv() a packet received by this loopback mechanism contains now \nthe (rigth) loopback device pointer (in Kernel 2.4 it was the (wrong) \nremote ethernet device pointer) and therefor no matching socket will be \nfound to deliver this packet to. Because a broadcast packet should be \nsend to the first matching socket (as it is done in many other protocols \n(?)), we removed the network comparison in broadcast case.\n\nBelow you will find a patch to correct this bug. Its diffed to kernel \n2.6.14-rc1\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1d31b3a3f1e598c2da003d9dd4e5c50551719e39",
      "old_mode": 33188,
      "old_path": "net/appletalk/ddp.c",
      "new_id": "7982656b9c830d7ea1c819d427240ca5a797a210",
      "new_mode": 33188,
      "new_path": "net/appletalk/ddp.c"
    }
  ]
}
