Hi,
On 20/09/2022 21:57, Selva Nair wrote:
On Tue, Sep 20, 2022 at 3:26 PM Antonio Quartulli <a...@unstable.cc
<mailto: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.
I agree with that. To be a bit more strict: I always preferred declaring
all variables at the beginning of the function.
You may have jumps in a function too (having the same issue as the
switch/case) or you may also hide another variable (i.e. function
argument) without noticing.
However, this is a broader topic that should be discussed during a
community meeting IMHO.
For now I will just remove the brackets from case 2, where they are not
needed.
Cheers,
Selva
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel
--
Antonio Quartulli
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel