)]}'
{
  "commit": "034f8623610a139010ee451d0ae81689c064209c",
  "tree": "0a99b624557233263bb895b88160c66444e58f59",
  "parents": [
    "49b955a50d49aa07f5929b9b4aa54f3b5910e992"
  ],
  "author": {
    "name": "Dmitry Goncharov",
    "email": "dgoncharov@users.sf.net",
    "time": "Sun Aug 04 15:13:44 2024 -0400"
  },
  "committer": {
    "name": "Paul Smith",
    "email": "psmith@gnu.org",
    "time": "Sun Aug 04 16:00:48 2024 -0400"
  },
  "message": "[SV 66037] Avoid hang/crash from MAKEFLAGS\u003d... on command line\n\nMake enters an infinite loop when some option and MAKEFLAGS\u003d\u003cvalue\u003e\nare specified on the command line.  For example,\n    $ make -r MAKEFLAGS\u003dhello\u003dworld\n\nIf decode_switches() runs handle_non_switch_argument() from within\nthe getopt() loop, it would recursively call decode_switches() to\nenter a new getopt() loop, corrupting the state of the outer loop.\n\n* src/main.c (decode_switches): Save up non-option arguments and run\nhandle_non_switch_argument() only after we\u0027re done with getopt().\n* tests/scripts/variables/MAKEFLAGS: Add tests.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bf3829a0fc74457498f6f81a9713bcc34c26e817",
      "old_mode": 33188,
      "old_path": "src/main.c",
      "new_id": "0367f08b8de9a99c1cb0f52d62c0e95485f715a7",
      "new_mode": 33188,
      "new_path": "src/main.c"
    },
    {
      "type": "modify",
      "old_id": "aab4a0e10797735685f4bc00e34887095d072a03",
      "old_mode": 33188,
      "old_path": "tests/scripts/variables/MAKEFLAGS",
      "new_id": "36b145fca2b1b167c8164a1c806cd4c89ac0d5e4",
      "new_mode": 33188,
      "new_path": "tests/scripts/variables/MAKEFLAGS"
    }
  ]
}
