On Sat, 30 Apr 2005 21:50:58 +0200
Thomas Graf <tgraf@xxxxxxx> wrote:
> RTM_MAX is currently set to the maximum reserverd message type plus one
> thus being the cause of two bugs for new types being assigned a) given the
> new family registers only the NEW command in its reserved block the array
> size for per family entries is calculated one entry short and b) given the
> new family registers all commands RTM_MAX would point to the first entry
> of the block following this one and the rtnetlink receive path would accept
> a message type for a nonexisting family.
>
> This patch changes RTM_MAX to point to the maximum valid message type
> by aligning it to the start of the next block and subtracting one.
>
> Signed-off-by: Thomas Graf <tgraf@xxxxxxx>
Excellent observation. The fact that we encode the "modifies state"
in the low bits of the RTM_* numbers has always been a source of
obscure bugs and hard to track down errors.
Patch applied, thanks.
|