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, Apr 1, 4:28 AM
Unknown Object (File)
Thu, Mar 26, 7:54 PM
Unknown Object (File)
Mon, Mar 23, 10:33 PM
Unknown Object (File)
Thu, Mar 19, 1:38 PM
Unknown Object (File)
Wed, Mar 11, 12:41 PM
Unknown Object (File)
Mon, Mar 9, 3:54 PM
Unknown Object (File)
Mon, Mar 9, 3:24 PM
Unknown Object (File)
Mon, Mar 9, 2:06 PM
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 56039
Build 52928: arc lint + arc unit

Event Timeline

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

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.