On Tue, Sep 20, 2022 at 3:26 PM Antonio Quartulli <a...@unstable.cc> wrote:

> Hi,
>
> On 20/09/2022 18:42, Gert Doering wrote:
> > Hi,
> >
> > On Mon, Sep 19, 2022 at 12:06:18AM +0200, Antonio Quartulli wrote:
> >> +    switch (session->opt->push_peer_info_detail)
> >>       {
> >> -        /* push version */
> >> -        buf_printf(&out, "IV_VER=%s\n", PACKAGE_VERSION);
> >> +        case 3:
> >> +        {
> > ...
> >> +        }
> >>
> >> +        /* fall through */
> >
> > These {} brackets are not needed by C or our style guide.
>
> they are required when the first instruction after a case label is a
> variable declaration. So this is needed for case 3, but could be avoided
> for the other 2.
>

IMO, we should have a policy of avoiding variable declarations within case:
clauses.

Whether its the first line after the case: label or not, if the scope is
not limited using {}, it leads to possible jumping over initialization. Its
so easy to overlook that. Unfortunately C (unlike C++) complains loudly
only if the declaration is next to the label.  One could always use {},
but that makes code hard to read. I think its much better to require that
all locals used within a switch block must be defined before all case:
labels.

Selva
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to