Page MenuHomeFreeBSD

netlink: Don't use a zero-length array
ClosedPublic

Authored by jhb on Feb 15 2024, 12:16 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Nov 6, 12:38 PM
Unknown Object (File)
Tue, Nov 5, 6:31 AM
Unknown Object (File)
Sun, Oct 27, 10:23 PM
Unknown Object (File)
Mon, Oct 21, 5:31 PM
Unknown Object (File)
Thu, Oct 17, 2:20 PM
Unknown Object (File)
Thu, Oct 17, 4:33 AM
Unknown Object (File)
Wed, Oct 16, 10:20 PM
Unknown Object (File)
Wed, Oct 16, 1:56 AM
Subscribers

Details

Summary

Define SNL_DECLARE_FIELD_PARSER* macros to create a parser that has
no output attributes only input fields and use this to define the
snl_donemsg_parser.

This removes the need for the zero-length nla_p_donemsg[] variable.
Zero length arrays are not valid in ISO C.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 56054
Build 52943: arc lint + arc unit

Event Timeline

jhb requested review of this revision.Feb 15 2024, 12:16 AM
sys/netlink/netlink_snl.h
201

I can't obviously see a reason why out_size wouldn't be useful for a field-only parser. Both snl_field_parser and snl_attr_parser have callbacks that take the target allocated based on out_size.

Also field generally becomes before attr in the file AFAICT, so would suggest moving this code to line 176.

This revision is now accepted and ready to land.Feb 24 2024, 7:15 PM
This revision was automatically updated to reflect the committed changes.