)]}'
{
  "log": [
    {
      "commit": "86ef6484a499639bf9429613b23c125a7428251c",
      "tree": "5a00ed4b0e1a39f17dfd8e7beb20b86599d4e153",
      "parents": [
        "3ef8287f6bba8a0e96fa3e591653432b84a5acf9"
      ],
      "author": {
        "name": "Henry Herman",
        "email": "henryherman@google.com",
        "time": "Thu May 23 13:23:46 2019 -0700"
      },
      "committer": {
        "name": "Leonid Lobachev",
        "email": "leonidl@google.com",
        "time": "Mon Dec 07 15:53:26 2020 -0800"
      },
      "message": "Rename defconfig to remove references to enterprise.\n\nChange-Id: Ieccab814a356ad6c507dd18d1761e34efa5796e0\n"
    },
    {
      "commit": "3ef8287f6bba8a0e96fa3e591653432b84a5acf9",
      "tree": "ca66facd28b203ba3a37287f14db01c023ff6e0a",
      "parents": [
        "fb957125d8aa83c9df6e54292327983a51ee7ffd"
      ],
      "author": {
        "name": "Alex Van Damme",
        "email": "atv@google.com",
        "time": "Mon Apr 01 10:49:09 2019 -0700"
      },
      "committer": {
        "name": "Leonid Lobachev",
        "email": "leonidl@google.com",
        "time": "Mon Dec 07 15:53:26 2020 -0800"
      },
      "message": "Busybox configuration for Enterprise\n\nChange-Id: I63921fa686f6d34bc9ca5ff40ea9dbda94025f5d\n"
    },
    {
      "commit": "fb957125d8aa83c9df6e54292327983a51ee7ffd",
      "tree": "2ee4aedfc79fddbc7a977cd44bc937a601500700",
      "parents": [
        "24c212b9acba0a3bbd74298d5ba076910cea51b0"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Jun 26 21:22:50 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Jun 26 21:22:50 2020 +0200"
      },
      "message": "Bump version to 1.32.0\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "24c212b9acba0a3bbd74298d5ba076910cea51b0",
      "tree": "defab1fc76d71f7eea68665c3f341ac60b8f2a52",
      "parents": [
        "b02f8ca9098bedad00407fdaf3c3150fc81212ce"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Jun 25 02:01:29 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Jun 25 02:01:29 2020 +0200"
      },
      "message": "gzip -d with zcat enabled but gunzip disabled was misbehaving\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "b02f8ca9098bedad00407fdaf3c3150fc81212ce",
      "tree": "f124cc389eaf4decbfe064b5fea4a8e784c7a13e",
      "parents": [
        "5663a17dabfcad885cc80f155ef84f7b843845cc"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 24 16:36:44 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 24 16:36:44 2020 +0200"
      },
      "message": "make_single_applets.sh: switch off nologin deps option\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "5663a17dabfcad885cc80f155ef84f7b843845cc",
      "tree": "6651dc68e37f6155c932b91c464c788c5727db9b",
      "parents": [
        "67e1529b921416d6c3f33fb43691bc9919e3eacc"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 24 13:43:11 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 24 15:05:29 2020 +0200"
      },
      "message": "bc: placate a \"defined but not used\" warning\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "67e1529b921416d6c3f33fb43691bc9919e3eacc",
      "tree": "874946bf7b52062d7496ea612b62f1cfe95f864f",
      "parents": [
        "d5314e71294d228cff5d86e00d15661461f68fc9"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 24 13:39:13 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 24 15:05:22 2020 +0200"
      },
      "message": "nologin: make it possible to build it as single applet\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "d5314e71294d228cff5d86e00d15661461f68fc9",
      "tree": "82dbf50b79f7bde1889042dfd3214a7307e5cb12",
      "parents": [
        "7c443d110d4dc51ba48bad8ed1427716b754bf2e"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 24 09:31:30 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 24 09:31:30 2020 +0200"
      },
      "message": "suppress a few compile warnings\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "7c443d110d4dc51ba48bad8ed1427716b754bf2e",
      "tree": "a233fcb29ef534eda8b3d2c18459399aeeb1234d",
      "parents": [
        "5fa5c4bde8b9ab75fa0ed37ee2fafca3fd46288a"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 24 00:27:37 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 24 00:27:37 2020 +0200"
      },
      "message": "randomconfig fixes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "5fa5c4bde8b9ab75fa0ed37ee2fafca3fd46288a",
      "tree": "de564d978ea2bbf5484f71ea3f181cb4b0a7f541",
      "parents": [
        "d206b1651ac4dc4db1d9bbd172a81da0568b42e8"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 23 21:28:19 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 23 21:28:19 2020 +0200"
      },
      "message": "randomconfig fixes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "d206b1651ac4dc4db1d9bbd172a81da0568b42e8",
      "tree": "8dd761271f8c47e4897953779918113affc1f473",
      "parents": [
        "03ab212bff0fa7f51c0f75ee4be5db67184e41a2"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 23 09:38:53 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 23 09:38:53 2020 +0200"
      },
      "message": "randomconfig fix\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "03ab212bff0fa7f51c0f75ee4be5db67184e41a2",
      "tree": "399bd867d21237dcd81c5d2df0e8df2f01462bd4",
      "parents": [
        "df1f479fc5167d6fa82b127c91a3851c0035fcac"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 23 03:43:39 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 23 03:43:39 2020 +0200"
      },
      "message": "randomconfig fixes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "df1f479fc5167d6fa82b127c91a3851c0035fcac",
      "tree": "64d32992e54d688e6f6ac9d092066e1b0274fc0f",
      "parents": [
        "6eb38fded2f459f2828121a2f6b1499da2677553"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 23 03:13:55 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 23 03:13:55 2020 +0200"
      },
      "message": "randomconfig fixes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "6eb38fded2f459f2828121a2f6b1499da2677553",
      "tree": "3762da91bad8762ff3666d4936460b6dc914a15e",
      "parents": [
        "62744efa472886ea8fdeb262dcb184974e3f88de"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 23 02:46:53 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 23 02:46:53 2020 +0200"
      },
      "message": "randomconfig fixes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "62744efa472886ea8fdeb262dcb184974e3f88de",
      "tree": "278154ce0a9c0bdf5e26ad90e6319affdb553c54",
      "parents": [
        "faab906d2867145c81e9bcb1f2bb1f81fd90e734"
      ],
      "author": {
        "name": "Stefan Agner",
        "email": "stefan.agner@toradex.com",
        "time": "Tue Jun 16 10:06:27 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Jun 21 03:02:02 2020 +0200"
      },
      "message": "examples/udhcp/simple.script: fix IPv6 support when using udhcpc\n\nThe udhcpc script calls ip addr flush .. which flushes addresses\nof any address family, including IPv6. However, busybox udhcpc is\nIPv4 only and should not influence IPv6 addressing. Hence use ip\naddr flush with family constraint.\n\nThe script particularly broke IPv6 SLAAC: Typically when udhcpc\ncalls the script the kernel already assigned the IPv6 link-local\naddress. The flush removes the link-local IPv6 address again and\nprohibits proper IPv6 operation such as SLAAC since neighbor\ndiscovery protocol relies on IPv6 link-local addressing.\n\nSigned-off-by: Stefan Agner \u003cstefan.agner@toradex.com\u003e\n[Taken from https://git.openembedded.org/openembedded-core/commit/meta/recipes-core/busybox/files/simple.script?id\u003db77541dbb2f442e51842f9d24c8745a6df2d1478]\nSigned-off-by: Quentin Schulz \u003cquentin.schulz@streamunlimited.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "faab906d2867145c81e9bcb1f2bb1f81fd90e734",
      "tree": "9dbcd02c7c92f2e1958720a212d1d7cf49faba2b",
      "parents": [
        "4789c7cd8152fee53c176e569b022ec4013597a0"
      ],
      "author": {
        "name": "Uwe Glaeser",
        "email": "uwe.glaeser@dormakaba.com",
        "time": "Sun Jun 21 02:56:12 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Jun 21 02:56:12 2020 +0200"
      },
      "message": "udhcpc6: use correct multicast MAC\n\nfunction                                             old     new   delta\nstatic.MAC_DHCP6MCAST_ADDR                             -       6      +6\n\nSigned-off-by: Uwe Glaeser \u003cuwe.glaeser@dormakaba.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "4789c7cd8152fee53c176e569b022ec4013597a0",
      "tree": "0fc5d8198b3448d1a03b0e965863a3daa363ef8c",
      "parents": [
        "505eeae402a84dc5208986c5ad611f5e485cbe34"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 10 15:37:39 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 10 15:37:39 2020 +0200"
      },
      "message": "nmeter: add %T (zero-based timestamp) format\n\nfunction                                             old     new   delta\ncollect_tv                                             -     132    +132\ncollect_monotonic                                      -      61     +61\nnmeter_main                                          754     778     +24\ngmtime                                                 -      21     +21\ninit_monotonic                                         -      18     +18\ninit_functions                                        44      48      +4\npacked_usage                                       33432   33420     -12\ncollect_time                                         125      19    -106\n------------------------------------------------------------------------------\n(add/remove: 5/0 grow/shrink: 2/2 up/down: 260/-118)          Total: 142 bytes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "505eeae402a84dc5208986c5ad611f5e485cbe34",
      "tree": "0a70dd48a364748ca2cf12bbf31805a508f21ce3",
      "parents": [
        "0356607264b8e1476d98a81667488ba1d6295d23"
      ],
      "author": {
        "name": "Biswapriyo Nath",
        "email": "nathbappai@gmail.com",
        "time": "Tue Jun 09 23:05:12 2020 +0530"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jun 10 14:33:19 2020 +0200"
      },
      "message": "Makefile.flags: restrict Wno-constant-logical-operand and Wno-string-plus-int options for clang\n\nthese options were added in b4ef2e3467d8e980ccf13c9dd342459c013b455f commit\ngcc shows unrecognized command-line option warnings\n\nSigned-off-by: Biswapriyo Nath \u003cnathbappai@gmail.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "0356607264b8e1476d98a81667488ba1d6295d23",
      "tree": "65879ea7e3ebdb9171baaed1b5c8c9be12446135",
      "parents": [
        "d30d1ebc117db182a6156df182057291d6fbaae1"
      ],
      "author": {
        "name": "Sören Tempel",
        "email": "soeren+git@soeren-tempel.net",
        "time": "Tue Jun 09 17:51:26 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 18:04:31 2020 +0200"
      },
      "message": "deluser: check if specified home is a directory before removing it\n\nOn Alpine, some users use /dev/null as a home directory. When removing\nsuch a user with `deluser --remove-home` this causes the /dev/null\ndevice file to be removed which is undesirable. To prevent this pitfall,\ncheck if the home directory specified for the user is an actual\ndirectory (or a symlink to a directory).\n\nImplementations of similar tools for other operating systems also\nimplement such checks. For instance, the OpenBSD rmuser(1)\nimplementation [0].\n\n[0]: https://github.com/openbsd/src/blob/b69faa6c70c5bfcfdddc6138cd8e0ee18cc15b03/usr.sbin/adduser/rmuser.perl#L143-L151\n\nfunction                                             old     new   delta\ndeluser_main                                         337     380     +43\n\nSigned-off-by: Sören Tempel \u003csoeren+git@soeren-tempel.net\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "d30d1ebc117db182a6156df182057291d6fbaae1",
      "tree": "59acd2bbd808d350f8e35dbb04e773002e6060f2",
      "parents": [
        "17764603f2a10bd43d174dc05512f38ab16a080a"
      ],
      "author": {
        "name": "Martin Lewis",
        "email": "martin.lewis.x84@gmail.com",
        "time": "Tue Jun 09 16:59:54 2020 -0500"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 17:59:56 2020 +0200"
      },
      "message": "dhcpc: refactor xmalloc_optname_optval to shrink binary size\n\nfunction                                             old     new   delta\nlen_of_option_as_string                               14      13      -1\ndhcp_option_lengths                                   14      13      -1\nudhcp_str2optset                                     641     637      -4\nstatic.xmalloc_optname_optval                        777     718     -59\n------------------------------------------------------------------------------\n(add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-65)             Total: -65 bytes\n\nSigned-off-by: Martin Lewis \u003cmartin.lewis.x84@gmail.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "17764603f2a10bd43d174dc05512f38ab16a080a",
      "tree": "5b3905a1a35be135cc650b24cc5fe956eaf2c391",
      "parents": [
        "0cad5f9b6dd80858c3ebb3893e04d2378eddc872"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Tue Jun 09 17:38:21 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 17:38:21 2020 +0200"
      },
      "message": "httpd: allow \u0027-h\u0027 to work when daemonized with NOMMU enabled\n\nCommit d1b75e184 (httpd: permit non-default home directory with NOMMU\nenabled) only works when used with the \u0027-f\u0027 (foreground) option.\n\nWhen \u0027-f\u0027 isn\u0027t specified and NOMMU is enabled bb_daemonize_or_rexec()\nis called to daemonize the server.  Since the server process has been\nre-execed the previous patch results in the xchdir() not being called.\n\nFix this by resetting the re_execed variable in this case.\n\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "0cad5f9b6dd80858c3ebb3893e04d2378eddc872",
      "tree": "9891b5120accfee3a260c2b8563b1a464287966e",
      "parents": [
        "002be6e821eedfa190c5b060e7b61acb306c2a92"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 17:22:06 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 17:22:06 2020 +0200"
      },
      "message": "udhcp: comment out unused domain compression code\n\nfunction                                             old     new   delta\nattach_option                                        411     406      -5\ndname_enc                                            381     167    -214\n------------------------------------------------------------------------------\n(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-219)           Total: -219 bytes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "002be6e821eedfa190c5b060e7b61acb306c2a92",
      "tree": "3eb0d206c179a42807947060b666f816cee7cca6",
      "parents": [
        "b2ab920716f640cbaaf486512ba177f4e0b597c5"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 15:58:32 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 15:58:32 2020 +0200"
      },
      "message": "sysctl: do report EACCES errors on write\n\nfunction                                             old     new   delta\nsysctl_act_recursive                                 165     179     +14\nsysctl_act_on_setting                                467     471      +4\n------------------------------------------------------------------------------\n(add/remove: 0/0 grow/shrink: 2/0 up/down: 18/0)               Total: 18 bytes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "b2ab920716f640cbaaf486512ba177f4e0b597c5",
      "tree": "ae3c6cb964bedf4f59f917c93172f8c9197af0d2",
      "parents": [
        "9b4a9d96b89f06355ad9551d782d34506699aac8"
      ],
      "author": {
        "name": "Mark Edgar",
        "email": "medgar123@gmail.com",
        "time": "Sat May 30 19:05:46 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 15:40:49 2020 +0200"
      },
      "message": "unexpand: correct behavior for --first-only --tabs\u003d4\n\nPrior to the patch, both -f and --first-only are in all cases either\nno-op or ignored.\nWithout --tabs, --first-only is the default so specifying it is a no-op.\nWith --tabs, --all is implied, and --first-only is intended to reset this.\n\nfunction                                             old     new   delta\nexpand_main                                          690     694      +4\n\nSigned-off-by: Mark Edgar \u003cmedgar123@gmail.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "9b4a9d96b89f06355ad9551d782d34506699aac8",
      "tree": "5e7ad4eb04b8e7c42864f985c5bd8dd525b78e2b",
      "parents": [
        "726d0d148b5a7a21eccaf8b17d2726f56ce2ce8f"
      ],
      "author": {
        "name": "Martin Lewis",
        "email": "martin.lewis.x84@gmail.com",
        "time": "Sun Mar 08 13:35:20 2020 -0500"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 01:55:59 2020 +0200"
      },
      "message": "xstrndup: Use strndup instead of implementing it.\n\nSigned-off-by: Martin Lewis \u003cmartin.lewis.x84@gmail.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "726d0d148b5a7a21eccaf8b17d2726f56ce2ce8f",
      "tree": "15ff71f94955a750e729cbc2b1524b4218121053",
      "parents": [
        "6f7a0096496a5a9e90638dc01e947015cc776110"
      ],
      "author": {
        "name": "Martin Lewis",
        "email": "martin.lewis.x84@gmail.com",
        "time": "Mon May 04 16:59:14 2020 -0500"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 01:49:10 2020 +0200"
      },
      "message": "dhcpc: code shrink in good_hostname\n\nIncorporated valid_domain_label into good_hostname to simplify the implementation.\n\nfunction                                             old     new   delta\nstatic.xmalloc_optname_optval                        973     958     -15\n------------------------------------------------------------------------------\n(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-15)             Total: -15 bytes\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n 993144\t  16915\t   1872\t1011931\t  f70db\tbusybox_old\n 993129\t  16915\t   1872\t1011916\t  f70cc\tbusybox_unstripped\n\nSigned-off-by: Martin Lewis \u003cmartin.lewis.x84@gmail.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "6f7a0096496a5a9e90638dc01e947015cc776110",
      "tree": "9c069ee55413ec7acef2d1e152859b0f14c9b11f",
      "parents": [
        "45fa3f18adf57ef9d743038743d9c90573aeeb91"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 01:33:54 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jun 09 01:33:54 2020 +0200"
      },
      "message": "awk: disallow \"str\"++, closes bug 12981\n\nfunction                                             old     new   delta\nparse_expr                                           887     896      +9\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "45fa3f18adf57ef9d743038743d9c90573aeeb91",
      "tree": "bb23b4ce9517ad2a547828e2712fc9ae3a61d8e7",
      "parents": [
        "9f3b410006956c59896034bb790b20e655f8b4cb"
      ],
      "author": {
        "name": "Dimitri John Ledkov",
        "email": "xnox@ubuntu.com",
        "time": "Tue May 19 18:20:39 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed May 20 15:10:44 2020 +0200"
      },
      "message": "wget: implement TLS verification with ENABLE_FEATURE_WGET_OPENSSL\n\nWhen ENABLE_FEATURE_WGET_OPENSSL is enabled, correctly implement TLS\nverification by default. And only ignore verification errors, if\n--no-check-certificate was passed.\n\nAlso note, that previously OPENSSL implementation did not implement\nTLS verification, nor printed any warning messages that verification\nwas not performed.\n\nBug-Ubuntu: https://bugs.launchpad.net/bugs/1879533\n\nCVE-2018-1000500\n\nSigned-off-by: Dimitri John Ledkov \u003cxnox@ubuntu.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "9f3b410006956c59896034bb790b20e655f8b4cb",
      "tree": "ffb97991063a42b85a4cc14e91317558d1f536b7",
      "parents": [
        "981b2eff814bd186188ad66a32990a6d17b37a3e"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Mon Dec 16 09:31:10 2019 +0000"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Apr 30 17:30:02 2020 +0200"
      },
      "message": "ash,hush: drop pointer check before calls to show_history\n\nshow_history() checks that its argument in non-null so there\u0027s\nno need to repeat the test at call sites.\n\nfunction                                             old     new   delta\nhistorycmd                                            25      17      -8\nbuiltin_history                                       29      21      -8\n------------------------------------------------------------------------------\n(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-16)             Total: -16 bytes\n\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "981b2eff814bd186188ad66a32990a6d17b37a3e",
      "tree": "9d66d4de595eac03a479de13ea8a66daf69c87cd",
      "parents": [
        "da7a6dbfa5d78e3d5cec5906b402908505d0fcf9"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Mon Jan 13 10:33:46 2020 +0000"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Apr 30 17:23:08 2020 +0200"
      },
      "message": "mim: run scripts from a specification file\n\nmim runs scripts from a specification file which can be thought\nof as an extremely limited Makefile. Neither make variables nor\ndependencies are supported. By default the file \u0027Mimfile\u0027 is read.\nAn example:\n\n   hello:\n      echo hello $1\n\n   clean:\n      rm -rf *\n\nThe command \u0027mim\u0027 or \u0027mim hello\u0027 will echo \u0027hello\u0027. Unlike \u0027make\u0027\narguments after the first are available to the script; they don\u0027t\nspecify additional targets.\n\nmim isn\u0027t enabled by default.  Enabling it increases the size of the\nbinary by about 500 bytes.\n\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "da7a6dbfa5d78e3d5cec5906b402908505d0fcf9",
      "tree": "447621855bebf9cadd2ce2c47c944060988a87ac",
      "parents": [
        "d1b75e1842b3e4f61daae2fb8a64d784a553f15c"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Thu Feb 27 09:50:18 2020 +0000"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Apr 30 16:42:58 2020 +0200"
      },
      "message": "ash: fix build failure when command built-in is disabled\n\nSince commit 7eb8eecbb (ash: eval: Add assignment built-in support\nagain) building BusyBox with the \u0027command\u0027 built-in disabled fails.\n\nparse_command_args() only needs to be called when the \u0027command\u0027\nbuilt-in is run.  Which it won\u0027t be if it\u0027s disabled.\n\nv2: Avoiding infinite loops is good, too.  Thanks, Harald van Dijk.\n\nReported-by: Deweloper \u003cdeweloper@wp.pl\u003e\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "d1b75e1842b3e4f61daae2fb8a64d784a553f15c",
      "tree": "a8b5bb5175332f81cd3d9460acfabad4ad3fb9be",
      "parents": [
        "42a8984abc5eed709addac263aab43d64d47257d"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Tue Apr 07 10:41:34 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Apr 30 16:37:44 2020 +0200"
      },
      "message": "httpd: permit non-default home directory with NOMMU enabled\n\nWhen BusyBox is compiled with NOMMU enabled running httpd with\nthe \u0027-h\u0027 option fails even if the specified directory exists:\n\n   $ ls -d www\n   www\n   $ busybox httpd  -fvvvp 8080 -h www\n   ...\n   ... try to access http://localhost:8080/www\n   ...\n   httpd: can\u0027t change directory to \u0027www\u0027: No such file or directory\n\nThe parent process executes xchdir(\"www\").  When a connection is accepted\nit\u0027s handled by re-executing httpd in inetd mode.  The child process\ninherits the current directory \"www\" and tries to change directory again\nto \"www\", which fails.\n\nOmit the call to xchdir() when httpd is re-executed.\n\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "42a8984abc5eed709addac263aab43d64d47257d",
      "tree": "94ca67b5972f991b805073ed6aefbac23b36b96c",
      "parents": [
        "c3295d233b6a7d924814eec9a5c5999a876daf9e"
      ],
      "author": {
        "name": "Sören Tempel",
        "email": "soeren+git@soeren-tempel.net",
        "time": "Mon Mar 30 11:02:08 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Apr 30 00:20:18 2020 +0200"
      },
      "message": "grep: add proper support for pattern_list\n\nFrom POSIX.1-2008:\n\n\tThe pattern_list\u0027s value shall consist of one or more patterns\n\tseparated by \u003cnewline\u003e characters;\n\nAs such, given patterns need to be split at newline characters. Without\ndoing so, busybox grep will interpret the newline as part of the pattern\nwhich is not in accordance with POSIX.\n\nSee also: https://bugs.busybox.net/show_bug.cgi?id\u003d12721\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "c3295d233b6a7d924814eec9a5c5999a876daf9e",
      "tree": "2281617cafa2ec0e9def7bf0ee5da3280e724c77",
      "parents": [
        "1c462d47a0bc92f9f57af223456df53169acf3fe"
      ],
      "author": {
        "name": "Gray Wolf",
        "email": "wolf@wolfsden.cz",
        "time": "Wed Apr 29 15:49:17 2020 +0200"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Apr 29 16:01:42 2020 +0200"
      },
      "message": "grep: Fix -f FILE when FILE is empty and -x provided\n\nGrep currently special-cased empty pattern file to be the same as\npattern file with one empty line (empty pattern). That does mirror how\nGNU grep behaves, except when -x is provided. In that case .* pattern\nneeds to be used instead.\n\nSigned-off-by: Gray Wolf \u003cwolf@wolfsden.cz\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "1c462d47a0bc92f9f57af223456df53169acf3fe",
      "tree": "8ded03ad3eaa86b931d42c70492f404107fa9e4e",
      "parents": [
        "ed8af51b600fd16d22c6663a241547c3a9d7f2b4"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Wed Feb 19 11:01:39 2020 +0000"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Apr 29 15:53:51 2020 +0200"
      },
      "message": "xargs: restore correct behaviour of -n option\n\nSince commit 1ff7002b1 (xargs: fix handling of quoted arguments, closes\n11441) the -n option hasn\u0027t worked properly:\n\n   $ echo 1 2 3 | xargs -n 1 echo\n   1\n   2\n\n   3\n\n   $\n\nBecause state is now remembered between calls to process_stdin() it\u0027s\nnecessary to update the state before any premature return.\n\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "ed8af51b600fd16d22c6663a241547c3a9d7f2b4",
      "tree": "cefe5aea5aaf30a1d96de97184aba405825ea509",
      "parents": [
        "b9943741c26e1e597edc142066f428540d1f1207"
      ],
      "author": {
        "name": "Jean-Philippe Brucker",
        "email": "jean-philippe@linaro.org",
        "time": "Thu Mar 12 17:19:45 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Apr 29 14:52:19 2020 +0200"
      },
      "message": "build system: remove KBUILD_STR()\n\nWhen using GNU Make \u003e\u003d4.3, the KBUILD_STR() definition interferes badly\nwith dependency checks during build, and forces a complete rebuild every\ntime Make runs.\n\nIn if_changed_rule, Kconfig checks if the command used to build a file\nhas changed since last execution. The previous command is stored in the\ngenerated .\u003cfile\u003e.o.cmd file. For example applets/.applets.o.cmd defines\na \"cmd_applets/applets.o\" variable:\n\n\tcmd_applets/applets.o :\u003d gcc ... -D\"KBUILD_STR(s)\u003d#s\" ...\n\nHere the \u0027#\u0027 should be escaped with a backslash, otherwise GNU Make\ninterprets it as starting a comment, and ignore the rest of the\nvariable. As a result of this truncation, the previous command doesn\u0027t\nequal the new command and Make rebuilds each target.\n\nThe problem started to appear when GNU Make 4.3 (released January 2020),\nintroduced a backward-incompatible fix to macros containing a \u0027#\u0027. While\nthe above use of \u0027#\u0027, a simple Make variable, still needs to be escaped,\na \u0027#\u0027 within a function invocation doesn\u0027t need to be escaped anymore.\nAs Martin Dorey explained on the GNU Make discussion [1], the above\ndeclaration is generated from make-cmd, defined as:\n\n\tmake-cmd \u003d $(subst \\#,\\\\\\#,$(subst $$,$$$$,$(call escsq,$(cmd_$(1))))\n\nSince GNU Make 4.3, the first argument of subst should not have a\nbackslash. make-cmd now looks for literally \\# and doesn\u0027t find it, and\nas a result doesn\u0027t add the backslash when generating .o.cmd files.\n\n[1] http://savannah.gnu.org/bugs/?20513\n\nWe could fix it by changing make-cmd to \"$(subst #,\\#,...)\", but to\navoid compatibility headaches, simply get rid of the KBUILD_STR\ndefinition, as done in Linux by b42841b7bb62 (\"kbuild: Get rid of\nKBUILD_STR\"). Quote the string arguments directly rather than asking the\npreprocessor to quote them.\n\nSigned-off-by: Jean-Philippe Brucker \u003cjean-philippe@linaro.org\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "b9943741c26e1e597edc142066f428540d1f1207",
      "tree": "913ce91cfc641c54593f04596294ebe6f8f6d7d1",
      "parents": [
        "9aa751b08ab03d6396f86c3df77937a19687981b"
      ],
      "author": {
        "name": "Lauri Kasanen",
        "email": "cand@gmx.com",
        "time": "Wed Apr 15 15:01:44 2020 +0300"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Apr 29 14:37:21 2020 +0200"
      },
      "message": "unzip: -d should create the dir\n\nThe official Info-Zip unzip creates the dir if it doesn\u0027t exist.\n\nSigned-off-by: Lauri Kasanen \u003ccand@gmx.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "9aa751b08ab03d6396f86c3df77937a19687981b",
      "tree": "df06300822ac071de0b913c6168f65cf8ffbe3eb",
      "parents": [
        "1555895b4af44ce47fe2365aec82e8e67c685f08"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Feb 26 09:05:52 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Feb 26 09:05:52 2020 +0100"
      },
      "message": "shells: fix exitcode_trapN tests to avoid races\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "1555895b4af44ce47fe2365aec82e8e67c685f08",
      "tree": "bd821be779bc1d489ac966b0d83e4a5e026979dd",
      "parents": [
        "823318822ccb0e0910abbd4e1f983637dfd9d3c0"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sat Feb 22 19:38:40 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 24 19:20:51 2020 +0100"
      },
      "message": "ash: expand: Fix multiple issues with EXP_DISCARD in evalvar\n\nUpstream commit:\n\n    Date: Wed, 12 Sep 2018 14:27:16 +0800\n    expand: Fix multiple issues with EXP_DISCARD in evalvar\n\n    The commit 3cd538634f71538370f5af239f342aec48b7470b broke parameter\n    expansion in multiple ways because the EXP_DISCARD flag wasn\u0027t set\n    or tested for various cases:\n\n            $ src/dash -c \u0027var\u003d; echo ${var:+nonempty}\u0027\n            nonempty\n            $ src/dash -u -c \u0027unset foo bar; echo ${foo+${bar}}\u0027\n            dash: 1: bar: parameter not set\n            $ src/dash -c \u0027foo\u003dbar; echo ${foo\u003dBUG}; echo $foo\u0027\n            barBUG\n            bar\n            $\n\n    This patch fixes them by introducing a new discard variable that\n    tracks whether the extra word should be discarded or not when it\n    is parsed.\n\n    Reported-by: Martijn Dekker \u003cmartijn@inlv.org\u003e\n    Fixes: 3cd538634f71 (\"expand: Do not reprocess data when...\")\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n    Reported-by: Martijn Dekker \u003cmartijn@inlv.org\u003e\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "823318822ccb0e0910abbd4e1f983637dfd9d3c0",
      "tree": "79623a9926f3e3ac979029d66b30f22f8c488fdc",
      "parents": [
        "6cda0b04a3d3c36312adf7a9aa608306f6a5704a"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 24 10:02:50 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 24 19:20:51 2020 +0100"
      },
      "message": "ash: expand: Do not reprocess data when expanding words\n\nUpstream patch:\n\n    Date: Wed, 30 May 2018 02:06:03 +0800\n    expand: Do not reprocess data when expanding words\n\n    Currently various paths will reprocess data when performing word\n    expansion.  For example, expari will skip backwards looking for\n    the start of the arithmetic expansion, while evalvar will skip\n    unexpanded words manually.\n\n    This is cumbersome and error-prone.  This patch fixes this by\n    making word expansions proceed in a linear fashion.  This means\n    changing argstr and the various expansion functions such as expari\n    and subevalvar to return the next character to be expanded.\n\n    This is inspired by similar code from FreeBSD.  However, we take\n    things one step further and completely remove the manual word\n    skipping in evalvar.  This is accomplished by introducing a new\n    EXP_DISCARD flag that tells argstr to only parse and not produce\n    any actual expansions.\n\n    Incidentally, argstr will now always NUL-terminate the expansion\n    unless the EXP_WORD flag is set.  This is because all but one\n    caller of argstr wants the result to be NUL-termianted.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nAlso includes two one-line follow-up fixes:\n\n    expand: Eat closing brace for length parameter\n            if (subtype \u003d\u003d VSLENGTH) {\n    +               p++;\n                    if (flag \u0026 EXP_DISCARD)\n    expand: Fix double-decrement in argstr\n    -               newloc \u003d expdest - (char *)stackblock() - end;\n    +               newloc \u003d q - (char *)stackblock() - end;\n\nand changes in code for bash substring extensions.\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "6cda0b04a3d3c36312adf7a9aa608306f6a5704a",
      "tree": "95f8d11e21dd7545f45cf5f269e606b37ca7a631",
      "parents": [
        "7f198485529cf3b9cc074a944dec56769872a1e3"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Fri Feb 21 16:16:56 2020 +0000"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 24 12:52:41 2020 +0100"
      },
      "message": "ash: move TRACE statement in evalcommand()\n\nFollowing recent work on evalcommand() a TRACE statement to report\nthe status of a forked command was left in the wrong place.\n\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "7f198485529cf3b9cc074a944dec56769872a1e3",
      "tree": "2960d04637ca3090ac44fc2dc4595e07230e675d",
      "parents": [
        "538ee4102b3eb046be1a74026d7c74642f9c7d13"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 24 09:57:08 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 24 12:48:33 2020 +0100"
      },
      "message": "ash: rename some function parameters to match dash\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "538ee4102b3eb046be1a74026d7c74642f9c7d13",
      "tree": "02e69e4d7932b4f45df86a5079b0e8f2905dc017",
      "parents": [
        "c2058ec98cf3f6722be4436cae07a386e3c7b48d"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sat Feb 22 19:11:41 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 24 12:47:19 2020 +0100"
      },
      "message": "ash: rename stack_nputstr() back to stnputs() to match dash\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "c2058ec98cf3f6722be4436cae07a386e3c7b48d",
      "tree": "16d21416ad7716949955b73481c8224f701eb705",
      "parents": [
        "c08993f40c0c6c7bdf453e77c3aa9dae8ec0dad9"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sat Feb 22 20:25:03 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sat Feb 22 20:29:36 2020 +0100"
      },
      "message": "ash: Expand here-documents in the current shell environment\n\nUpstream commit:\n\n    Date: Sun, 11 Nov 2007 15:27:00 +0800\n    Expand here-documents in the current shell environment\n\n    Previously we always expanded here-documents in a subshell.  This is\n    contrary to the POSIX specification and how other shells behave.  What\u0027s\n    more this slows down many expansions due to the extra fork (however, it\n    must be said that it is possible for it speed up certain expansions by\n    running it simultaneously with the command on two CPUs).\n\n    This patch move the expansion into the current shell environment.\n\n    Test case:\n\n            unset a\n            cat \u003c\u003c- EOF \u003e /dev/null\n                    ${a\u003dNOT}\n            EOF\n            echo ${a}BAD\n\n    Old result:\n\n            BAD\n\n    New result:\n\n            NOTBAD\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "c08993f40c0c6c7bdf453e77c3aa9dae8ec0dad9",
      "tree": "01a44b93192180ac09ba94016f05e9ba8db15fc9",
      "parents": [
        "9a1a659707a18c29166c3e2977523102866d7aed"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sat Feb 22 17:26:23 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sat Feb 22 17:26:23 2020 +0100"
      },
      "message": "ash: parser: Do not push token back before parseheredoc\n\nUpstream commit:\n\n    Date: Mon, 19 Nov 2018 18:43:58 +0800\n    parser: Do not push token back before parseheredoc\n\n    When we read the first token in list() we use peektoken instead\n    of readtoken as the following code needs to use the same token\n    again.  However, this is wrong when we\u0027re in a here-document as\n    it will clobber the saved token without resetting the tokpushback\n    flag.\n\n    This patch fixes it by doing the tokpushback after parseheredoc\n    and setting lasttoken again if parseheredoc was called.\n\n    Reported-by: Ron Yorston \u003crmy@frippery.org\u003e\n    Fixes: 7c245aa8ed33 (\"[PARSER] Simplify EOF/newline handling in...\")\n    Fixes: ee5cbe9fd6bc (\"[SHELL] Optimize dash -c \"command\" to avoid a fork\")\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n    Tested-by: Simon Ser \u003ccontact@emersion.fr\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "9a1a659707a18c29166c3e2977523102866d7aed",
      "tree": "032d75ed04a949c4b9ad9279ee49b9fde7b1a597",
      "parents": [
        "e4a0612efdedca0182d444942c34317e9df28a27"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sat Feb 22 16:39:27 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sat Feb 22 16:39:27 2020 +0100"
      },
      "message": "ash: parser: Fix old-style command substitution here-document crash\n\nUpstream commit:\n\n    Date: Fri, 29 Mar 2019 13:49:59 +0800\n    parser: Fix old-style command substitution here-document crash\n\n    ... This is caused by the recent change to\n    save/restore here-docment list around command substitutions.  In\n    doing so we must finish existing here-documents prior to restoring\n    the old here-document list.  This is done for new-style command\n    substitutions but not for old-style.\n\n    This patch fixes it by doing it for both.\n\n    Fixes: 51e2d88d6e51 (\"parser: Save/restore here-documents in...\")\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "e4a0612efdedca0182d444942c34317e9df28a27",
      "tree": "97bffa46406ae80dd4349c1ace455e1c6b7837e8",
      "parents": [
        "45dd87aac05ddf8bbfb110fde85ef875f3adfb65"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 21 17:21:34 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 21 17:21:34 2020 +0100"
      },
      "message": "hush: fix negative_arith.tests: glob-protect dash in \"$((arith))\"\n\nfunction                                             old     new   delta\nexpand_vars_to_list                                 1026    1082     +56\nparse_dollar                                         810     811      +1\n------------------------------------------------------------------------------\n(add/remove: 0/0 grow/shrink: 2/0 up/down: 57/0)               Total: 57 bytes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "45dd87aac05ddf8bbfb110fde85ef875f3adfb65",
      "tree": "2d18a0cc2abd0e15f4163f5dc1ce928739b8097d",
      "parents": [
        "da2e46dff6576c29fa1d379c943bb7943aa6e7ce"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 21 16:30:44 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 21 16:30:44 2020 +0100"
      },
      "message": "ash: expand: Ensure result is escaped in cvtnum\n\nUpstream commit:\n\n    Date: Fri, 1 Jun 2018 18:25:29 +0800\n    expand: Ensure result is escaped in cvtnum\n\n    The minus sign generated from arithmetic expansion is currently\n    unquoted which causes anomalies when the result is used in where\n    the quoting matters.\n\n    This patch fixes it by explicitly calling memtodest on the result\n    in cvtnum.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "da2e46dff6576c29fa1d379c943bb7943aa6e7ce",
      "tree": "3c0d5871276db4d1e1bc3061e8de0529d39fa5f0",
      "parents": [
        "3ced804e3118d138781c3e4baa6bf1589b9f2dfd"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 21 15:25:37 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 21 15:25:37 2020 +0100"
      },
      "message": "ash: memalloc: Avoid looping in growstackto\n\nUpstream commit:\n\n    Date: Thu, 31 May 2018 01:51:48 +0800\n    memalloc: Avoid looping in growstackto\n\n    Currently growstackto will repeatedly call growstackblock until\n    the requisite size is obtained.  This is wasteful.  This patch\n    changes growstackblock to take a minimum size instead.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "3ced804e3118d138781c3e4baa6bf1589b9f2dfd",
      "tree": "963276adb3280dfa605725e20598afe566139f08",
      "parents": [
        "cc9ecd9af13f04a4814ebdec60942962c3e9f14f"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 21 02:55:53 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 21 02:55:53 2020 +0100"
      },
      "message": "hush: make \"exit\" in trap use pre-trap exitcode - fix for nested trap\n\nfunction                                             old     new   delta\ncheck_and_run_traps                                  276     278      +2\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "cc9ecd9af13f04a4814ebdec60942962c3e9f14f",
      "tree": "700e8aa0d2e23df90312d224f42a76733c9b248e",
      "parents": [
        "f977e004cefe46e8010c3d29681d77da50e380a9"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 21 02:18:06 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 21 02:18:06 2020 +0100"
      },
      "message": "hush: make \"exit\" in trap use pre-trap exitcode\n\nfunction                                             old     new   delta\ncheck_and_run_traps                                  259     276     +17\nbuiltin_exit                                          42      53     +11\nhush_main                                           1086    1096     +10\n------------------------------------------------------------------------------\n(add/remove: 0/0 grow/shrink: 3/0 up/down: 38/0)               Total: 38 bytes\n\nFixes exitcode_trap2.tests.\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "f977e004cefe46e8010c3d29681d77da50e380a9",
      "tree": "39c1afc6b44350bd56fe03ed59afb8f4bfae645e",
      "parents": [
        "cd24a506336f84ff2bb3318bc4f2f82dd025f318"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 16:54:29 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 16:54:29 2020 +0100"
      },
      "message": "ash: eval: Only restore exit status on exit/return\n\nUpstream commit:\n\n    Date: Fri, 14 Dec 2018 13:52:02 +0800\n    eval: Only restore exit status on exit/return\n\n    We unconditionally restore the saved status in exitreset, which\n    is incorrect as we only want to do it for exitcmd and returncmd.\n    This patch fixes the problem by introducing EXEND.\n\n    Reported-by: Martijn Dekker \u003cmartijn@inlv.org\u003e\n    Fixes: da30b4b78769 (\"[BUILTIN] Exit without arguments in a trap...\")\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "cd24a506336f84ff2bb3318bc4f2f82dd025f318",
      "tree": "4b05a48e5211faae670afb7671452a59ab0a89d5",
      "parents": [
        "bb095f483827567452ee3501779a84f36719288d"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 16:47:01 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 16:47:01 2020 +0100"
      },
      "message": "ash: Return without arguments in a trap should use status outside traps\n\nFixes exitcode_trap4.tests.\nUpstream commit:\n\n    Date: Mon, 6 Oct 2014 21:51:26 +0800\n    Return without arguments in a trap should use status outside traps\n\n    POSIX now requires that return without arguments in a trap should\n    return the last command status prior to executing traps.  This\n    patch implements this behaviour.\n\n    Incidentally this also changes the behaviour of return without\n    arguments in a loop conditional to use the last exit status in\n    the body as opposed to the last command in the conditional when\n    there is one.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "bb095f483827567452ee3501779a84f36719288d",
      "tree": "26e844ece54913569de12bc0ae76cc77ffcfdf77",
      "parents": [
        "d5bfe26c457a97a8b525b6c27f5498525a5829bf"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 16:37:59 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 16:37:59 2020 +0100"
      },
      "message": "hush: implement \"return NUM in trap sets $? after trap\"\n\nfunction                                             old     new   delta\nbuiltin_return                                        47      67     +20\ncheck_and_run_traps                                  243     259     +16\nrun_pipe                                            1583    1597     +14\nhush_main                                           1076    1086     +10\nrun_list                                            1054    1055      +1\n------------------------------------------------------------------------------\n(add/remove: 0/0 grow/shrink: 5/0 up/down: 61/0)               Total: 61 bytes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "d5bfe26c457a97a8b525b6c27f5498525a5829bf",
      "tree": "a80b55274ac3fa64dd93244064e75a875d27abdd",
      "parents": [
        "ecc85832f8b4d8278b0a17aa62b0c8a9f81461e4"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Thu Feb 20 08:23:03 2020 +0000"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 10:39:46 2020 +0100"
      },
      "message": "ash: return exit status of nofork applets (again)\n\nSince commit d81af7216 (ash: eval: Reap zombies after built-in commands\nand functions) if the shell is compiled with SH_STANDALONE and SH_NOFORK\nenabled nofork applets potentially return the incorrect status.\n\nThe status value returned by evalcommand() in this case is obtained from\nexitstatus in a call to waitforjob(NULL).  This overwrites the status\nset for nonfork applets.\n\nIf this commit seems familiar it\u0027s essentially a reversion of commit\n5ccb0e92fa (ash: return exit status of nofork applets).  What was correct\nin 2016 is wrong in 2020 and vice versa.\n\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "ecc85832f8b4d8278b0a17aa62b0c8a9f81461e4",
      "tree": "9ce4dce5d3cc149440408ada6e40c84ab4f26ac3",
      "parents": [
        "e2dd2afc8e4dbcf1061818adc68d2e74a1fa64d3"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 10:06:20 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 10:37:30 2020 +0100"
      },
      "message": "ash: expand: Merge syntax/quotes in memtodest with flags\n\nUpstream commit:\n\n    Date: Mon, 28 May 2018 00:17:39 +0800\n    expand: Merge syntax/quotes in memtodest with flags\n\n    The function arguments syntax and quotes are both derived from\n    the expansion flags.  As syntax is only used by memtodest we do\n    not need to maintain it outside of the function at all.\n\n    The only place that uses something other than BASESYNTAX or DQSYNTAX\n    is exptilde.  However in that case DQSYNTAX has exactly the same\n    effect as SQSYNTAX.\n\n    This patch merges these two arguments into a single flags.  The\n    macro QUOTES_KEEPNUL has been renamed to EXP_KEEPNUL in order\n    to keep the namespace separate.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "e2dd2afc8e4dbcf1061818adc68d2e74a1fa64d3",
      "tree": "9dc1fb145d22ad8c80796bc771e43578b899b507",
      "parents": [
        "3e729102a86b1fb536f61c6ebcd95321ba98528d"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 10:33:38 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 10:37:30 2020 +0100"
      },
      "message": "ash: eval: Always set localvar_stop\n\nUpstream commit:\n\n    Date: Thu, 31 May 2018 01:15:34 +0800\n    eval: Always set localvar_stop\n\n    The variable localvar_stop is set iff vlocal is true.  gcc doesn\u0027t\n    get this so we get a spurious warning.\n\n    This patch fixes this by always calling pushlocalvars with vlocal\n    and making it only actually do the push if vlocal is non-zero.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "3e729102a86b1fb536f61c6ebcd95321ba98528d",
      "tree": "0624e6d0c39f564ad18b4eac3fa1e590eadd7f0b",
      "parents": [
        "54bef2a8efd21e9992a9d26cf30c5b26cbc0e21a"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Feb 19 17:33:44 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 09:36:51 2020 +0100"
      },
      "message": "ash: eval: Replace with listsetvar with mklocal/setvareq\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:55 +0800\n    eval: Replace with listsetvar with mklocal/setvareq\n\n    This patch replaces listsetvar with mklocal/setvareq.  As we now\n    determine special built-in status prior to variable assignment, we\n    no longer have to do a second pass listsetvar.  Instead we will\n    call setvareq directly instead of mklocal when necessary.\n\n    In order to do this mklocal can now take a flag in order to mark\n    a variable for export.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "54bef2a8efd21e9992a9d26cf30c5b26cbc0e21a",
      "tree": "d7b25fc37724cbd4fe0820663648a45ed77c9565",
      "parents": [
        "7eb8eecbbc752d04381f35d196bbdf1e3b17e2d1"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Feb 19 15:30:20 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 09:36:51 2020 +0100"
      },
      "message": "ash: eval: Fail immediately with redirections errors for simple command\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:54 +0800\n    eval: Fail immediately with redirections errors for simple command\n\n    Previously, dash would continue to perform variable expansions\n    even if a redirection error occured.  This patch changes it so\n    that it fails immediately.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "7eb8eecbbc752d04381f35d196bbdf1e3b17e2d1",
      "tree": "52c34b1ccd069bc6155ca213388877fb442a97ce",
      "parents": [
        "c91950f31532febe34e00ab20d3e5f462d9daa52"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Feb 19 15:15:13 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 20 09:36:51 2020 +0100"
      },
      "message": "ash: eval: Add assignment built-in support again\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:52 +0800\n    eval: Add assignment built-in support again\n\n    This patch adds assignment built-in support that used to exist\n    in dash prior to 0.3.8-15.  This is because it will soon be part\n    of POSIX, and the semantics are now much better defined.\n\n    Recognition is done at execution time, so even \"command -- export\"\n    or \"var\u003dexport; command $var\" should work.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "c91950f31532febe34e00ab20d3e5f462d9daa52",
      "tree": "f2621d022921045b602f5533b703849fc171f973",
      "parents": [
        "23bc562a0556d1c0ddad4252fa8d46c863b5fa88"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Feb 19 12:10:41 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Feb 19 12:10:41 2020 +0100"
      },
      "message": "ash,hush: testcase for \"exit\" without arguments in a trap\n\nhush fails this one\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "23bc562a0556d1c0ddad4252fa8d46c863b5fa88",
      "tree": "3ad95cdddd273d569f55c57dcb6fe8f6ae488d51",
      "parents": [
        "47eb979404735b9528538968cb5eaac7355a0c5a"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Feb 18 16:46:01 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Feb 18 16:46:01 2020 +0100"
      },
      "message": "ash,hush: add comment about masked SIGCHLD, handle SIG_IGNed SIGHUP as in bash\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "47eb979404735b9528538968cb5eaac7355a0c5a",
      "tree": "3e75d1d7e964b45156c097ce745eee26d004fb9b",
      "parents": [
        "97edfc42f112a15828aaec886ef7012d24f34d5e"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Feb 18 15:37:43 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Feb 18 15:37:43 2020 +0100"
      },
      "message": "ash: jobs: Only clear gotsigchld when waiting for everything\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:41 +0800\n    jobs: Only clear gotsigchld when waiting for everything\n\n    The gotsigchld flag is always cleared in dowait but not all callers\n    of dowait will wait for everything.  In particular, when jp is set\n    we only wait until the set job isn\u0027t running anymore.\n\n    This patch fixes this by only clearing gotsigchld if jp is unset.\n    It also changes the waitcmd to actually set jp which corresponds\n    to the behaviour of bash/ksh93/mksh.\n\n    The only other caller of dowait that doesn\u0027t wait for everything\n    is the jobless reaper.  This is in fact redundant now that we wait\n    after every simple command.  This patch removes it.\n\n    Finally as every caller of dowait needs to wait until either the\n    given job is not running, or until all terminated jobs have been\n    processed, this patch moves the loop into dowait itself.\n\n    Fixes: 03876c0743a5 (\"eval: Reap zombies after built-in...\")\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "97edfc42f112a15828aaec886ef7012d24f34d5e",
      "tree": "49297967a0a7a1e1288e2113edc18d1fcbf813d8",
      "parents": [
        "d81af7216b3305a1aac211dc847dd1c191f3b307"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Feb 18 14:37:56 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Feb 18 15:37:22 2020 +0100"
      },
      "message": "ash: jobs - Do not block when waiting on SIGCHLD\n\nUpstream comment:\n\n    Date: Mon, 7 May 2018 00:40:34 +0800\n    jobs - Do not block when waiting on SIGCHLD\n\n    Because of the nature of SIGCHLD, the process may have already been\n    waited on and therefore we must be prepared for the case that wait\n    may block.  So ensure that it doesn\u0027t by using WNOHANG.\n\n    Furthermore, multiple jobs may have exited when gotsigchld is set.\n    Therefore we need to wait until there are no zombies left.\n\n    Lastly, waitforjob needs to be called with interrupts off and\n    the original patch broke that.\n\n    Fixes: 03876c0743a5 (\"eval: Reap zombies after built-in...\")\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nWhile at it, removed INT_ON/OFF in waitforjob() - it must be called\nfrom INT_OFF region anyway.\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "d81af7216b3305a1aac211dc847dd1c191f3b307",
      "tree": "3ff0488dfe7ee89a7a5472c2f75e9c8cecc99554",
      "parents": [
        "22c75924daa41b7ea097796afd4baafa2fc99d05"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Feb 18 14:28:30 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Feb 18 14:28:30 2020 +0100"
      },
      "message": "ash: eval: Reap zombies after built-in commands and functions\n\nUpstream commit:\n\n    Date: Mon, 26 Mar 2018 23:55:50 +0800\n    eval: Reap zombies after built-in commands and functions\n\n    Currently dash does not reap dead children after built-in commands\n    or functions.  This means that if you construct a loop consisting\n    of solely built-in commands and functions, then zombies can hang\n    around indefinitely.\n\n    This patch fixes this by reaping when necessary after each built-in\n    command and function.\n\n    Reported-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "22c75924daa41b7ea097796afd4baafa2fc99d05",
      "tree": "8e57f30bb01cf0356344c27b5c78d4c3d72c776c",
      "parents": [
        "6c4f87e411aa5375eaea5a5909a5c610e38c7e70"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 16:20:05 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 16:20:05 2020 +0100"
      },
      "message": "ash: exec: Never rehash regular built-ins\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:51 +0800\n    exec: Never rehash regular built-ins\n\n    As regular (including special) built-ins can never be overridden,\n    we should never remove them from the hash table.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "6c4f87e411aa5375eaea5a5909a5c610e38c7e70",
      "tree": "0ef3d39731e103f0cdbdf2eec4676eebba8236a0",
      "parents": [
        "b0d2dc7d62f6dea67b82e451510fa77243b4c60c"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 16:02:40 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 16:02:40 2020 +0100"
      },
      "message": "ash: exec: Stricter pathopt parsing\n\nUpstream comment:\n\n    Date: Sat, 19 May 2018 02:39:50 +0800\n    exec: Stricter pathopt parsing\n\n    This patch changes the parsing of pathopt.  First of all only\n    %builtin and %func (with arbitrary suffixes) will be recognised.\n    Any other pathopt will be treated as a normal directory.\n\n    Furthermore, pathopt can now be specified before the directory,\n    rather than after it.  In fact, a future version may remove support\n    for pathopt suffixes.\n\n    Wherever the pathopt is placed, an optional % may be placed after\n    it to terminate the pathopt.\n\n    This is so that it is less likely that a genuine directory containing\n    a % sign is parsed as a pathopt.\n\n    Users of padvance outside of exec.c have also been modified:\n\n    1) cd(1) will always treat % characters as part of the path.\n    2) chkmail will continue to accept arbitrary pathopt.\n    3) find_dot_file will ignore the %builtin pathopt instead of trying\n    to do a stat in the accompanying directory (which is usually the\n    current directory).\n\n    The patch also removes the clearcmdentry optimisation where we\n    attempt to only partially flush the table where possible.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "b0d2dc7d62f6dea67b82e451510fa77243b4c60c",
      "tree": "163ee1a1459a707e0a678e7e5dcb853405413138",
      "parents": [
        "c55847fedbc3cbc10f2558c5449d8635f318ce49"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 15:27:41 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 15:59:44 2020 +0100"
      },
      "message": "ash: exec: Do not allocate stack string in padvance\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:48 +0800\n    exec: Do not allocate stack string in padvance\n\n    Many callers of padvance immediately free the allocated string\n    so this patch moves the stalloc call to the caller.  Instead of\n    returning the allocated string, padvance now returns the length\n    to allocate (this may be longer than the actual string length,\n    even including the NUL).  For the case where we would previously\n    return NULL, we now return -1.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "c55847fedbc3cbc10f2558c5449d8635f318ce49",
      "tree": "0e6e83dae9075d330205551cabbc64dae8bac67f",
      "parents": [
        "74aaf05170d6f224194c98ee0434e2decae45735"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 15:59:08 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 15:59:08 2020 +0100"
      },
      "message": "ash: memalloc: Add growstackto helper\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:46 +0800\n    memalloc: Add growstackto helper\n\n    This patch adds the growstackto helper which repeatedly calls\n    growstackblock until the requested size is reached.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "74aaf05170d6f224194c98ee0434e2decae45735",
      "tree": "c228795cc7ccfcf7cfab18c054ef7bc8e9d775d8",
      "parents": [
        "afc91faeddd6b8234dccea2f7913f57a5bb3d1ec"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 12:11:26 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 12:11:26 2020 +0100"
      },
      "message": "ash: parser: Save/restore here-documents in command substitution\n\nUpstream comment:\n\n    Date: Sat, 19 May 2018 02:39:42 +0800\n    parser: Save/restore here-documents in command substitution\n\n    This patch changes the parsing of here-documents within command\n    substitution, both old style and new style.  In particular, the\n    original here-document list is saved upon the beginning of parsing\n    command substitution and restored when exiting.\n\n    This means that here-documents outside of command substitution\n    can no longer be filled by text within it and vice-versa.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "afc91faeddd6b8234dccea2f7913f57a5bb3d1ec",
      "tree": "ae4b2d8f7802cc94987841832d010ba3129773a1",
      "parents": [
        "9ee5892798be81f7a6f3e070ecd52cbf0d55740e"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 11:22:59 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 11:22:59 2020 +0100"
      },
      "message": "ash: mkinit: Split reset into exitreset and reset\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:40 +0800\n    mkinit: Split reset into exitreset and reset\n\n    Previously reset was called after exitshell.  This was changed\n    so that it was called before exitshell because certain state needed\n    to be reset in order for the EXIT trap to work.\n\n    However, this caused issues because certain other states (such\n    as local variables) should not be reset.  This patch fixes this\n    by creating a new function exitreset that is called prior to\n    exitshell and moving reset back to its original location.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "9ee5892798be81f7a6f3e070ecd52cbf0d55740e",
      "tree": "9801edcaadd307687df6f33cad7ba7edd1e2b75b",
      "parents": [
        "c2ce888030b6b880b3229520a8ff7d7026248a9a"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 10:24:32 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 10:24:32 2020 +0100"
      },
      "message": "ash: expand: Fix trailing newlines processing in backquote expanding\n\nUpstream commit:\n\n    Date: Mon, 29 Apr 2019 19:13:37 +0500\n    expand: Fix trailing newlines processing in backquote expanding\n\n    According to POSIX.1-2008 we should remove newlines only at the end of\n    the substitution. Newlines-only substitions causes dash to remove\n    newlines before beggining of the substitution. The following code:\n\n        cat \u003c\u003cEND\n        1\n        $(echo \"\")\n        2\n        END\n\n    prints \"1\u003cnewline\u003e2\" instead of expected \"1\u003cnewline\u003e\u003cnewline\u003e2\".\n\n    This patch fixes trailing newlines processing in backquote expanding.\n\n    Signed-off-by: Nikolai Merinov \u003cn.merinov@inango-systems.com\u003e\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "c2ce888030b6b880b3229520a8ff7d7026248a9a",
      "tree": "2b9d9032ff83d7a26cd54ea8c4f1c098f6ed3626",
      "parents": [
        "3f4847b6d9198a359e98933271af4630b3c41f0a"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 10:15:35 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Feb 17 10:15:35 2020 +0100"
      },
      "message": "ash: parser: Only accept single-digit parameter expansion outside of braces\n\nUpstream commit:\n\n    Date: Mon, 27 May 2019 13:39:37 +0800\n    parser: Only accept single-digit parameter expansion outside of braces\n\n    This patch should fix the problem.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "3f4847b6d9198a359e98933271af4630b3c41f0a",
      "tree": "af3289428e99c91837dfa7dbf113332a70904006",
      "parents": [
        "e368d851e78a2eb2aee50b8bad29dcc301feec65"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:06:42 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:29:31 2020 +0100"
      },
      "message": "ash: shell: Fix clang warnings about \"string plus integer\"\n\nUpstream commit:\n\n    Date: Sat, 15 Dec 2018 18:49:31 +0100\n    shell: Fix clang warnings about \"string plus integer\"\n\n    Building with clang results in some warnings about integer values being\n    added to strings.\n\n    While the code itself is fine and the warnings are indeed harmless,\n    fixing them also makes the semantic more explicit: what it is actually\n    being increased is the address which points to the start of the string\n    in order to skip the initial character when some conditions are met.\n\n    Signed-off-by: Antonio Ospite \u003cao2@ao2.it\u003e\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "e368d851e78a2eb2aee50b8bad29dcc301feec65",
      "tree": "7a047d689cc8fe4c0890ad95fb088ecca8df72c3",
      "parents": [
        "4ace38580927b3b402b6b35ab50893dbfd5f77c3"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:02:22 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:24:33 2020 +0100"
      },
      "message": "ash: eval: Use the correct expansion mode for fd redirection\n\nUpstream comment:\n\n    Date: Mon, 19 Nov 2018 18:00:32 +0800\n    eval: Use the correct expansion mode for fd redirection\n\n    It has been reported that\n\n            echo test \u003e\u0026$EMPTY_VARIABLE\n\n    causes dash to segfault.  This is a symptom of the bigger problem\n    that dash tries to perform pathname expansion as well as field\n    splitting on the word after \u003e\u0026 and \u003c\u0026.  This is wrong and this\n    patch fixes it to use the same expansions as done on a normal\n    redirection.\n\n    Reported-by: Andrej Shadura \u003candrew.shadura@collabora.co.uk\u003e\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "4ace38580927b3b402b6b35ab50893dbfd5f77c3",
      "tree": "4ec3f0fbc314e75c68f63775ebf26d75d8cddce9",
      "parents": [
        "226b8a143d5632180bef05f728bb497b8318294f"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 18:42:50 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:22:32 2020 +0100"
      },
      "message": "ash: expand: Fix skipping of command substitution when trimming in evalvar\n\nUpstream commit:\n\n    Date: Mon, 28 May 2018 17:09:48 +0800\n    expand: Fix skipping of command substitution when trimming in evalvar\n\n    When we are trimming an unset variable in evalvar, any embedded\n    command substitution that should have been skipped are not.  This\n    can cause them to be evaluated later should there be other command\n    substitutions in the same input word.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "226b8a143d5632180bef05f728bb497b8318294f",
      "tree": "cfe150cb6fdf78ce051769c0c9fa6a287bf3ef42",
      "parents": [
        "e880b1fea8442b623d45a8f62227fc35cbcac7ec"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 18:57:53 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:16:52 2020 +0100"
      },
      "message": "ash: main: Print \\n upon EOF (CTRL-D) when run interactively\n\nUpstream comment:\n\n    Date: Fri, 7 Sep 2018 10:34:14 +0200\n    main: Print \\n upon EOF (CTRL-D) when run interactively\n\n    Exiting dash via a ^D instead of with \"exit\" causes dash to forget to\n    print a newline.\n\n        sh-3.1$ sh\n        sh-3.1$ ^D\n        sh-3.1$ dash\n        $ sh-3.1$\n\n    It is more neat and tidy to send a newline similarly to what bash does,\n    so it doesn\u0027t make the next prompt of the parent shell look ugly.\n\n    Suggested by jidanni.\n\n    Signed-off-by: Gerrit Pape \u003cpape@smarden.org\u003e\n    Signed-off-by: Jonathan Nieder \u003cjrnieder@gmail.com\u003e\n    [reworded the patch description]\n    Signed-off-by: Andrej Shadura \u003candrew.shadura@collabora.co.uk\u003e\n    Bug-Debian: http://bugs.debian.org/476422\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "e880b1fea8442b623d45a8f62227fc35cbcac7ec",
      "tree": "d7f36baedaa725a37077edc4a5746ffb82484b7f",
      "parents": [
        "a7b97e367c44d8a6890397848dcf59f4e190d4f9"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 18:31:05 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:16:35 2020 +0100"
      },
      "message": "ash: expand: Use HOME in tilde expansion when it is empty\n\nUpstream commit:\n\n    Date: Sun, 27 May 2018 17:31:57 +0800\n    expand: Use HOME in tilde expansion when it is empty\n\n    Currently if HOME is set to empty tilde expansion will fail, i.e.,\n    it will remain as a literal tilde.  This patch changes it to\n    return the empty string as required by POSIX.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "a7b97e367c44d8a6890397848dcf59f4e190d4f9",
      "tree": "90180306e3cc371e7164301065001b0ccd25657e",
      "parents": [
        "2bad3a305b5934d17e817a8fbb9c42ee04dc5a3c"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 18:29:52 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:14:45 2020 +0100"
      },
      "message": "ash: builtin: Mark more regular built-ins\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:49 +0800\n    builtin: Mark more regular built-ins\n\n    This patch marks the following built-ins as regular, meaning that\n    they cannot be overriden using PATH search:\n\n            hash\n            pwd\n            type\n            ulimit\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "2bad3a305b5934d17e817a8fbb9c42ee04dc5a3c",
      "tree": "e37badceaeaeb6fc5aeeb687e0036bcef3234677",
      "parents": [
        "3f7fb2c89ad75bbdd3b69e302124c8179c273bb4"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 18:23:43 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:14:45 2020 +0100"
      },
      "message": "ash: jobs: Replace some uses of fmtstr with stpcpy/stpncpy\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:45 +0800\n    jobs: Replace some uses of fmtstr with stpcpy/stpncpy\n\n    Some uses of fmtstr, particularly the ones without a format string,\n    can be replaced with stpcpy or stpncpy.  This patch does that so\n    we don\u0027t have to introduce unnecessary format strings in order to\n    silence compiler warnings.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "3f7fb2c89ad75bbdd3b69e302124c8179c273bb4",
      "tree": "3aee03325f2422ef780c80bbec5082610fe0b16c",
      "parents": [
        "970470e235fd2a00d4b020378ddccf769ce534ec"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 18:06:20 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:14:45 2020 +0100"
      },
      "message": "ash: output: Fix fmtstr return value\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:44 +0800\n    output: Fix fmtstr return value\n\n    The function fmtstr is meant to return the actual length of output\n    produced, rather than the untruncated length.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "970470e235fd2a00d4b020378ddccf769ce534ec",
      "tree": "f27dc4e837664f7e935eba76bf9491bdd74a7fd2",
      "parents": [
        "4ccddc8fb37b7f585c2d62f6e61ad17295399aff"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 14 17:32:22 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:14:45 2020 +0100"
      },
      "message": "ash: main: Only set savestatus in exitcmd\n\nUpstream commit:\n\n    Date: Sat, 19 May 2018 02:39:38 +0800\n    main: Only set savestatus in exitcmd\n\n    Currently exitcmd sets exitstatus and then savestatus if the latter\n    was previously set.  In fact, as exitcmd always raises an exception\n    and will either end up in the setjmp call in main() or exitshell(),\n    where exitstatus is always replaced by savestatus if set, we only\n    need to set savestatus.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "4ccddc8fb37b7f585c2d62f6e61ad17295399aff",
      "tree": "5a7b60334c1be7f7d32ca7d589b4171fc1eea28a",
      "parents": [
        "f7eea8c235dea6699a21c7b26c218e6c0dc1bf95"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 14 17:27:18 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:14:45 2020 +0100"
      },
      "message": "ash: [BUILTIN] Exit without arguments in a trap should use status outside traps\n\nUpstream commit:\n\n    Date:   Mon Oct 6 10:39:47 2014 +0800\n    [BUILTIN] Exit without arguments in a trap should use status outside traps\n\n    POSIX now requires that exit without arguments in a trap should\n    return the last command status prior to executing traps.  This\n    patch implements this behaviour.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "f7eea8c235dea6699a21c7b26c218e6c0dc1bf95",
      "tree": "0888318b2f41a89a2a36238937bfc198b7d267d1",
      "parents": [
        "acf79f9913e4cf9b2889404af6758ec8a0d6b090"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 14 16:16:34 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:14:45 2020 +0100"
      },
      "message": "ash: parser: Fix incorrect eating of backslash newlines\n\nKeeping up with upstream (in our case, \u0027before patch\u0027 code is not buggy).\nUpstream commit:\n\n    Date: Fri, 11 May 2018 23:41:25 +0800\n    parser: Fix incorrect eating of backslash newlines\n\n    With the introduction of synstack-\u003esyntax, a number of references\n    to the syntax variable was missed during the conversion.  This\n    causes backslash newlines to be incorrectly removed in single\n    quote context.\n\n    This patch also combines these calls into a new helper function\n    pgetc_top.\n\n    Fixes: ab1cecb40478 (\"parser: Add syntax stack for recursive...\")\n    Reported-by: Leah Neukirchen \u003cleah@vuxu.org\u003e\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "acf79f9913e4cf9b2889404af6758ec8a0d6b090",
      "tree": "3e789b542f3d31965ead486f2149f455c10cb717",
      "parents": [
        "a6e48dead331c3c19e070992d2d571e74a1d9a8d"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 14 16:12:06 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 16 19:14:45 2020 +0100"
      },
      "message": "ash: use pgetc_eatbnl() in more places, take 2\n\nAdding previously skipped \"readtoken1(pgetc_eatbnl(), DQSYNTAX...\" changes\nfrom upstream commit:\n\n    Date:   Thu Mar 8 08:37:11 2018 +0100\n    Author: Harald van Dijk \u003charald@gigawatt.nl\u003e\n    parser: use pgetc_eatbnl() in more places\n\n    dash has a pgetc_eatbnl function in parser.c which skips any\n    backslash-newline combinations. It\u0027s not used everywhere it could be.\n    There is also some duplicated backslash-newline handling elsewhere in\n    parser.c. Replace most of the calls to pgetc() with calls to\n    pgetc_eatbnl() and remove the duplicated backslash-newline handling.\n\n    Signed-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "a6e48dead331c3c19e070992d2d571e74a1d9a8d",
      "tree": "2c1727953a1b0c53422d626b1cbe520bc901fef2",
      "parents": [
        "adc540f0dbcd640b37f39364aa4a1c6857a96a96"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 14 13:57:41 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Fri Feb 14 13:57:41 2020 +0100"
      },
      "message": "fdisk: add HFS / HFS+ partition type\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "adc540f0dbcd640b37f39364aa4a1c6857a96a96",
      "tree": "400e54e15e2320ba443205152146634857b1f1c0",
      "parents": [
        "0c4e5977dfc32b54e452cd88a9cf14afde29c89d"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 13 15:27:23 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 13 15:27:23 2020 +0100"
      },
      "message": "tftp: on download, open local file only when first bit of data arrived\n\nNo reason to potentially clobber existing file before absolutely necessary.\n\nfunction                                             old     new   delta\ntftp_protocol                                       1947    2020     +73\ntftp_main                                            393     376     -17\n------------------------------------------------------------------------------\n(add/remove: 0/0 grow/shrink: 1/1 up/down: 73/-17)             Total: 56 bytes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "0c4e5977dfc32b54e452cd88a9cf14afde29c89d",
      "tree": "210cf6c66dcaccb3bdec881d48ea5a5f4c51aa51",
      "parents": [
        "779df9f228789034ef23f856f855147bdb729958"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 13 15:03:12 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 13 15:03:12 2020 +0100"
      },
      "message": "tftp: fix thinko in code shrink\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "779df9f228789034ef23f856f855147bdb729958",
      "tree": "c67a49cfd2fae5263241579590ae9cf459829f7e",
      "parents": [
        "260bd21169843fc00ee294a5f75da9e53cb2bc14"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 13 13:01:43 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 13 13:01:43 2020 +0100"
      },
      "message": "tftp: code shrink\n\nfunction                                             old     new   delta\ntftp_protocol                                       1949    1947      -2\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "260bd21169843fc00ee294a5f75da9e53cb2bc14",
      "tree": "928a161362d3e7c37cc534f273f19874b8153ba0",
      "parents": [
        "bd8b05ba1b0901bbd6a913dfd5186ac7c8beffed"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 13 12:58:46 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Thu Feb 13 12:58:46 2020 +0100"
      },
      "message": "tftpd: show requested file name in open error message\n\nfunction                                             old     new   delta\ntftp_protocol                                       1902    1949     +47\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "bd8b05ba1b0901bbd6a913dfd5186ac7c8beffed",
      "tree": "d4989ed16d4824dc8925042bce8c426bd499df2f",
      "parents": [
        "9e2a5668fd38db169d9d91b13089a99df4c9bd37"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 02 23:28:55 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sun Feb 02 23:28:55 2020 +0100"
      },
      "message": "awk: fix more \"length\" cases, closes 12486\n\nfunction                                             old     new   delta\nnext_token                                           808     831     +23\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "9e2a5668fd38db169d9d91b13089a99df4c9bd37",
      "tree": "3d823cd22bf7627fbb5ef90fdcfae794c1f94ab2",
      "parents": [
        "1ff7002b1d229c678fdffebec602fb4c54439a31"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Tue Jan 21 16:01:58 2020 +0000"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jan 29 15:23:17 2020 +0100"
      },
      "message": "ash,hush: allow builtins to be tab-completed, closes 7532\n\nfunction                                             old     new   delta\ncomplete_cmd_dir_file                                678     830    +152\nget_builtin_name                                       -      35     +35\noptschanged                                          125     132      +7\nhush_main                                           1069    1076      +7\nsave_command_ps_at_cur_history                        76      78      +2\n------------------------------------------------------------------------------\n(add/remove: 1/0 grow/shrink: 4/0 up/down: 203/0)             Total: 203 bytes\n\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "1ff7002b1d229c678fdffebec602fb4c54439a31",
      "tree": "71b5f1f29037301c29e6ce41ddca51da3cd237ce",
      "parents": [
        "16bcd504a32e6a7bf2015ffb241133f9ead6100b"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Fri Jan 24 13:16:45 2020 +0000"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jan 29 14:39:13 2020 +0100"
      },
      "message": "xargs: fix handling of quoted arguments, closes 11441\n\nAs reported in bug 11441 when presented with a large number of quoted\narguments xargs can return \u0027argument line too long\u0027:\n\n   seq 10000 29999 | sed -e \u0027s/^/\"/\u0027 -e \u0027s/$/\"/\u0027 | busybox xargs echo\n\nThis happens because the variant of process_stdin() which handles quoted\narguments doesn\u0027t preserve state between calls.  If the allowed number\nof characters is exceeded part way through a quoted argument the next\ncall to process_stdin() incorrectly treats the terminating quote as a\nstarting quote, thus quoting all of the argument separators.\n\nfunction                                             old     new   delta\nprocess_stdin                                        274     303     +29\nxargs_main                                           731     745     +14\n------------------------------------------------------------------------------\n(add/remove: 0/0 grow/shrink: 2/0 up/down: 43/0)               Total: 43 bytes\n\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "16bcd504a32e6a7bf2015ffb241133f9ead6100b",
      "tree": "773faace280d73803d7390f496776bedea655a17",
      "parents": [
        "b0c711e64f868fcab0711d8d0f86aaaa4ed93158"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Thu Jan 23 15:31:19 2020 +0000"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jan 29 14:01:50 2020 +0100"
      },
      "message": "vi: fixes to string search in colon commands, closes 10321\n\nHandling of string searches in colon commands (e.g \u0027:/pat1/,/pat2/cmd\u0027)\ndiffer from standard vi:\n\n- As reported in bug 10321 such searches can\u0027t be repeated using the\n  \u0027n\u0027 command.  This is because the last search pattern isn\u0027t updated.\n\n- The search also can\u0027t be repeated using the command \u0027://\u0027 because\n  an empty search pattern doesn\u0027t imply the use of the last search\n  pattern.\n\n- Such searches should start on the line after the current line,\n  otherwise \u0027://\u0027 never moves to the next occurrence of the pattern.\n  This can also affect other cases where line ranges are specified\n  using search patterns.\n\nFix these various issues.\n\nfunction                                             old     new   delta\nget_one_address                                      325     342     +17\n\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "b0c711e64f868fcab0711d8d0f86aaaa4ed93158",
      "tree": "42a92619ef723cce5153eb0160df8f36cf9dc5c4",
      "parents": [
        "eb7f9acda147543079f261753a11d2afa340fc5e"
      ],
      "author": {
        "name": "Ron Yorston",
        "email": "rmy@pobox.com",
        "time": "Thu Jan 23 11:26:08 2020 +0000"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jan 29 13:59:45 2020 +0100"
      },
      "message": "ash: improve expandstr()\n\nThe dash maintainer recently posted a fix for issues with expanding\nPS1.  These had already been fixed differently in BusyBox ash.  Borrow\na couple of improvements:\n\n- Use a single call to setjmp() to trap errors in both readtoken1()\n  and expandarg().\n\n- In case of error set the prompt to the literal value of PS1 rather\n  than the half-digested nonsense in stackblock() which might include\n  ugly control characters.\n\nfunction                                             old     new   delta\nexpandstr                                            353     300     -53\n\nSigned-off-by: Ron Yorston \u003crmy@pobox.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "eb7f9acda147543079f261753a11d2afa340fc5e",
      "tree": "cc9aefc903421664a3261a8c3d7fd6c405e8c414",
      "parents": [
        "020abc8856f94d6e355f4daa972ac75fb05ae113"
      ],
      "author": {
        "name": "Peter Korsgaard",
        "email": "peter@korsgaard.com",
        "time": "Mon Jan 27 15:36:41 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Wed Jan 29 13:56:36 2020 +0100"
      },
      "message": "syslogd: add config option to include milliseconds in timestamps\n\nFor some use cases, having logs with more than 1 second accuracy can be\nhelpful.  Add an option to include milliseconds when adding a timestamp in\nHH:MM:SS.mmm format, similar to syslog-ng with fraq_digits(3) or journalctl\n-o short-precise.\n\nFor simplicity, abuse the remaining space in the buffer used by ctime to add\nthe millieconds (overwriting year).\n\nfunction                                             old     new   delta\ntimestamp_and_log                                    401     448     +47\n\nSigned-off-by: Peter Korsgaard \u003cpeter@korsgaard.com\u003e\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "020abc8856f94d6e355f4daa972ac75fb05ae113",
      "tree": "80b17c194d00325fb131d61da4a1876d9f9cba9f",
      "parents": [
        "9ec836c033fc6e55e80f3309b3e05acdf09bb297"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jan 14 17:05:48 2020 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Jan 14 17:07:18 2020 +0100"
      },
      "message": "udhcpd: mangle hostnames starting with dash (\"-option\")\n\nfunction                                             old     new   delta\nadd_lease                                            316     328     +12\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "9ec836c033fc6e55e80f3309b3e05acdf09bb297",
      "tree": "e6663a58c0b03d903a270c8d4c7c9a9e6b0c428e",
      "parents": [
        "356f23de20b48382f5a2c5db29dc4f6dc9d10289"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Dec 03 14:52:17 2019 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Dec 03 14:52:17 2019 +0100"
      },
      "message": "whois: limit total length of response to 32+2 kb\n\nfunction                                             old     new   delta\nquery                                                517     554     +37\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "356f23de20b48382f5a2c5db29dc4f6dc9d10289",
      "tree": "9e1658b4c6930c713f7fe417832a586a2b9e5a55",
      "parents": [
        "113c776f4d2ce4ead7c2d11a3ca62adeec9a2e34"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Dec 03 13:48:55 2019 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Tue Dec 03 14:05:32 2019 +0100"
      },
      "message": "init: improve handling of signals racing with each other\n\nBefore this change, a request to reboot could be \"overwritten\" by e.g.\nSIGHUP.\n\nfunction                                             old     new   delta\ninit_main                                            709     793     +84\npacked_usage                                       33273   33337     +64\nrun_actions                                          109     117      +8\nstop_handler                                          87      88      +1\ncheck_delayed_sigs                                   340     335      -5\nrun                                                  214     198     -16\n------------------------------------------------------------------------------\n(add/remove: 0/0 grow/shrink: 4/2 up/down: 157/-21)           Total: 136 bytes\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    },
    {
      "commit": "113c776f4d2ce4ead7c2d11a3ca62adeec9a2e34",
      "tree": "86ebfbdf565a9c2fe07b564c6e7e565281426b5a",
      "parents": [
        "259747caa7d86a5a46013b80a19b2ee2d4e0a73b"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Dec 02 16:39:54 2019 +0100"
      },
      "committer": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Mon Dec 02 16:39:54 2019 +0100"
      },
      "message": "init: if tcgetattr() fails, don\u0027t even try to tcsetattr()\n\nfunction                                             old     new   delta\nset_sane_term                                        111     114      +3\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\n"
    }
  ],
  "next": "259747caa7d86a5a46013b80a19b2ee2d4e0a73b"
}
