From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15977 invoked by alias); 21 Mar 2018 10:16:53 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 42487 Received: (qmail 15724 invoked by uid 1010); 21 Mar 2018 10:16:53 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.12):SA:0(-1.9/5.0):. Processed in 12.548048 secs); 21 Mar 2018 10:16:53 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20180321101633euoutp028ee3877d83a3c3053e3279ae1bf67689~d6A19W8Mu2624926249euoutp02s DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1521627393; bh=KNXaVawaCK1CqIqOugPpnp9tG+TNw1MDLFniHXpbwDI=; h=Date:From:To:Subject:References:From; b=kdpC1UD47suzIX40JGmNwVqoMoob75kvBz4QJE17z5GURh3qetnrFE6l+RRTldRwg iU4LuHAW6eSPA4td4drpq5KvH02+4i1BjIvJSvVVWaINigUZ+af5LrP+OrbXoBmYrI 8lAOiB9HweAMENJBrIa3TGK1YE5qtcKQj9VrncPQ= X-AuditID: cbfec7f5-b5fff700000028a9-65-5ab231005eb7 Date: Wed, 21 Mar 2018 10:16:30 +0000 From: Peter Stephenson To: Zsh hackers' list Subject: Warnings in compctl Message-id: <20180321101630.511442a9@camnpupstephen.cam.scsc.local> Organization: SCSC X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrBIsWRmVeSWpSXmKPExsWy7djPc7oMhpuiDFbelrQ42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGZOe/2QseGtaMXfeOZYGxnNKXYycHBICJhLrN11k7GLk4hAS WMEoceXbehYIp5dJYve2m+wwVae+fGODSCxjlJjWNI8ZwpnGJDHrbhs7hHOGUWLu731QmQuM Evd2/GUE6WcRUJX4uvkTC4jNJmAoMXXTbLC4iIC2xKfPp9lAbGEBGYk7K6eD2bwCzhKf/y4C quHg4BcQkrjQbAtxhr3E0T0nmSBKBCV+TL4HNpJZQEdi27bH7BC2vMTmNW/BbpAQ+Moqca6z kwmi2UXi9a9NULawxKvjW6B+k5Ho7DjIBNHQzCix9v59NohED6PErMWhELa1RN/ti4wQG/gk Jm2bzgxynIQAr0RHmxBEiYfElIfr2SHCjhI/p2uDhIUEYiXO3u1nncAoNwvJ2bOQnD0LydkL GJlXMYqnlhbnpqcWG+ellusVJ+YWl+al6yXn525iBMb36X/Hv+5g3Pcn6RCjAAejEg+vhdjG KCHWxLLiytxDjBIczEoivNs+A4V4UxIrq1KL8uOLSnNSiw8xSnOwKInzxmnURQkJpCeWpGan phakFsFkmTg4pRoYlX3S5kyqvHYoWWnn5lru6AmzNv/03/f4v8k+jrNv7gokx/9e49a+eMfx w+XL69boKAv2Va63t9j2o3dzSNu5pAtzZvPxunuL6wv+2yzWp7ucof0Up2LuPatda8x6S05t 777eqzbXfWHIs12apz+9N6g2SVon1TEt+dCJ9lfer98/dwtV2HitSYmlOCPRUIu5qDgRAHLI CGzrAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFLMWRmVeSWpSXmKPExsVy+t/xq7r/DTZFGWzvNbE42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGZOe/2QseGtaMXfeOZYGxnNKXYycHBICJhKnvnxjA7GFBJYw SvR8YOxi5AKyZzBJPLx4Bso5xyjx/+g6KOcCo0TXyWusIC0sAqoSXzd/YgGx2QQMJaZums0I YosIaEt8+nwabKywgIzEnZXTwWxeAWeJz38XAdVwcPALCElcaLaFuMJe4uiek0wQJYISPybf AxvJLKAlsXlbEyuELS+xec1bZohL1SVu3N3NPoFRYBaSlllIWmYhaVnAyLyKUSS1tDg3PbfY UK84Mbe4NC9dLzk/dxMjMAS3Hfu5eQfjpY3BhxgFOBiVeHgtxDZGCbEmlhVX5h5ilOBgVhLh 3fYZKMSbklhZlVqUH19UmpNafIhRmoNFSZz3vEFllJBAemJJanZqakFqEUyWiYNTqoFxalri pB1m2ukqC04Emk5WSuo+cOqR06/5ry7722StuOb472b2092VWhEMa5k74n7L3HyzcFmn9Q6r p5fkKze6zj4Rd170uGaIvkL91eXzgupWh1Qva8wv7VH0uHykS6P3ytyL174F/Z79dG65bdiT KzOuZD7Y75ls1MIXo7n3j0mX1VupL9u+KbEUZyQaajEXFScCACO9/ik9AgAA X-CMS-MailID: 20180321101631eucas1p281904e89d2bc29ef8fa0c3c0aa6b06d6 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180321101631eucas1p281904e89d2bc29ef8fa0c3c0aa6b06d6 X-RootMTR: 20180321101631eucas1p281904e89d2bc29ef8fa0c3c0aa6b06d6 References: This removes some warnings from gcc 7.3.0. Technically I think a pointer off the front is in fact invalid (one off the end is allowed so long as it isn't dereferenced). pws diff --git a/Src/Zle/compctl.c b/Src/Zle/compctl.c index 5414b8f..e9d1657 100644 --- a/Src/Zle/compctl.c +++ b/Src/Zle/compctl.c @@ -383,7 +383,7 @@ get_compctl(char *name, char ***av, Compctl cc, int first, int isdef, int cl) * cct is a temporary just to hold flags; it never needs freeing. */ struct compctl cct; - char **argv = *av; + char **argv = *av, argv_end[2] = "x"; int ready = 0, hx = 0; /* Handle `compctl + foo ...' specially: turn it into @@ -516,14 +516,14 @@ get_compctl(char *name, char ***av, Compctl cc, int first, int isdef, int cl) } if ((*argv)[1]) { p = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "retry specification expected after -%c", **argv); return 1; } else { p = *++argv; - *argv = "" - 1; + *argv = argv_end; } switch (*p) { case '+': @@ -553,25 +553,25 @@ get_compctl(char *name, char ***av, Compctl cc, int first, int isdef, int cl) case 'k': if ((*argv)[1]) { cct.keyvar = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "variable name expected after -%c", **argv); return 1; } else { cct.keyvar = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 'K': if ((*argv)[1]) { cct.func = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "function name expected after -%c", **argv); return 1; } else { cct.func = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 'Y': @@ -582,74 +582,74 @@ get_compctl(char *name, char ***av, Compctl cc, int first, int isdef, int cl) expl: if ((*argv)[1]) { cct.explain = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "string expected after -%c", **argv); return 1; } else { cct.explain = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 'y': if ((*argv)[1]) { cct.ylist = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "function/variable expected after -%c", **argv); } else { cct.ylist = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 'P': if ((*argv)[1]) { cct.prefix = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "string expected after -%c", **argv); return 1; } else { cct.prefix = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 'S': if ((*argv)[1]) { cct.suffix = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "string expected after -%c", **argv); return 1; } else { cct.suffix = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 'g': if ((*argv)[1]) { cct.glob = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "glob pattern expected after -%c", **argv); return 1; } else { cct.glob = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 's': if ((*argv)[1]) { cct.str = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "command string expected after -%c", **argv); return 1; } else { cct.str = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 'l': @@ -658,13 +658,13 @@ get_compctl(char *name, char ***av, Compctl cc, int first, int isdef, int cl) return 1; } else if ((*argv)[1]) { cct.subcmd = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "command name expected after -%c", **argv); return 1; } else { cct.subcmd = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 'h': @@ -673,49 +673,49 @@ get_compctl(char *name, char ***av, Compctl cc, int first, int isdef, int cl) return 1; } else if ((*argv)[1]) { cct.substr = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "command name expected after -%c", **argv); return 1; } else { cct.substr = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 'W': if ((*argv)[1]) { cct.withd = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "path expected after -%c", **argv); return 1; } else { cct.withd = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 'J': if ((*argv)[1]) { cct.gname = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "group name expected after -%c", **argv); return 1; } else { cct.gname = *++argv; - *argv = "" - 1; + *argv = argv_end; } break; case 'V': if ((*argv)[1]) { cct.gname = (*argv) + 1; - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "group name expected after -%c", **argv); return 1; } else { cct.gname = *++argv; - *argv = "" - 1; + *argv = argv_end; } cct.mask2 |= CC_NOSORT; break; @@ -738,7 +738,7 @@ get_compctl(char *name, char ***av, Compctl cc, int first, int isdef, int cl) cct.mstr = NULL; return 1; } - *argv = "" - 1; + *argv = argv_end; } else if (!argv[1]) { zwarnnam(name, "matching specification expected after -%c", **argv); @@ -751,7 +751,7 @@ get_compctl(char *name, char ***av, Compctl cc, int first, int isdef, int cl) cct.mstr = NULL; return 1; } - *argv = "" - 1; + *argv = argv_end; } break; case 'H': @@ -772,7 +772,7 @@ get_compctl(char *name, char ***av, Compctl cc, int first, int isdef, int cl) cct.hnum = 0; if (*cct.hpat == '*' && !cct.hpat[1]) cct.hpat = ""; - *argv = "" - 1; + *argv = argv_end; break; case 'C': if (cl) {