brbzull0 opened a new pull request, #13543:
URL: https://github.com/apache/trafficserver/pull/13543

   Config was addressed as an array by advancing a pointer from its first 
member, and the update handler recovered the index by subtracting pointers to 
distinct members. Both are undefined behavior regardless of layout. Name the 
values instead so indexing is well defined, which also removes the layout 
assertions and the magic per-thread mask.
   
   The index also arrives from an untyped event cookie, so give the enum a 
fixed underlying type: converting an out of range integer to an enumeration 
without one is undefined, which would defeat the check in operator[] before it 
could run. Scoping the enum keeps an int from silently becoming an index again.
   
   The compiler checks the new switch for exhaustiveness but not for 
correctness, so add a test that every index reaches a distinct member. A case 
returning the wrong value would otherwise build cleanly and make a record 
update write to the wrong setting.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to