From owner-freebsd-bugs@FreeBSD.ORG Thu Apr 18 13:20:02 2013 Return-Path: Delivered-To: freebsd-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id BA090D6D for ; Thu, 18 Apr 2013 13:20:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id AC9A3D8D for ; Thu, 18 Apr 2013 13:20:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.6/8.14.6) with ESMTP id r3IDK2EX044567 for ; Thu, 18 Apr 2013 13:20:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.6/8.14.6/Submit) id r3IDK2to044566; Thu, 18 Apr 2013 13:20:02 GMT (envelope-from gnats) Date: Thu, 18 Apr 2013 13:20:02 GMT Message-Id: <201304181320.r3IDK2to044566@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Luiz Otavio O Souza Subject: Re: bin/177872: [patch] etherswitchcfg(8) crashes if called with no argument for vlangroups members X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Luiz Otavio O Souza List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Apr 2013 13:20:02 -0000 The following reply was made to PR bin/177872; it has been noted by GNATS. From: Luiz Otavio O Souza To: Luiz Otavio O Souza Cc: bug-followup@FreeBSD.org Subject: Re: bin/177872: [patch] etherswitchcfg(8) crashes if called with no argument for vlangroups members Date: Thu, 18 Apr 2013 10:07:23 -0300 --Apple-Mail-4--711296950 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Here is the correct fix. It fix all the cases where it can happen (i.e. = etherswitchctl vlangroupX vlan, etherswitchctl vlangroupX members, = etherswitchcfg port1 vlangroup, etherswitchcfg port1 media, etc.). On Apr 17, 2013, at 5:48 PM, Luiz Otavio O Souza wrote: > Please, don't commit the fix in this PR, it's wrong. I'll submit the = correct fix later. --Apple-Mail-4--711296950 Content-Disposition: attachment; filename=etherswitchcfg-check-arguments.diff Content-Type: application/octet-stream; name="etherswitchcfg-check-arguments.diff" Content-Transfer-Encoding: 7bit Index: sbin/etherswitchcfg/etherswitchcfg.c =================================================================== --- sbin/etherswitchcfg/etherswitchcfg.c (revision 249621) +++ sbin/etherswitchcfg/etherswitchcfg.c (working copy) @@ -466,8 +466,11 @@ case MODE_PORT: case MODE_VLANGROUP: for(i=0; cmds[i].name != NULL; i++) { - if (cfg.mode == cmds[i].mode && strcmp(argv[0], cmds[i].name) == 0 - && argc >= cmds[i].args) { + if (cfg.mode == cmds[i].mode && strcmp(argv[0], cmds[i].name) == 0) { + if (argc < (cmds[i].args + 1)) { + printf("%s needs an argument\n", cmds[i].name); + break; + } (cmds[i].f)(&cfg, argv); argc -= cmds[i].args; argv += cmds[i].args; --Apple-Mail-4--711296950--