• Cong Wang's avatar
    net_sched: improve and refactor tcf_action_put_many() · edfaf94f
    Cong Wang authored
    tcf_action_put_many() is mostly called to clean up actions on
    failure path, but tcf_action_put_many(&actions[acts_deleted]) is
    used in the ugliest way: it passes a slice of the array and
    uses an additional NULL at the end to avoid out-of-bound
    access.
    
    acts_deleted is completely unnecessary since we can teach
    tcf_action_put_many() scan the whole array and checks against
    NULL pointer. Which also means tcf_action_delete() should
    set deleted action pointers to NULL to avoid double free.
    
    Fixes: 90b73b77 ("net: sched: change action API to use array of pointers to actions")
    Cc: Jiri Pirko <jiri@mellanox.com>
    Cc: Vlad Buslov <vladbu@mellanox.com>
    Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    edfaf94f
act_api.c 40.5 KB