• Grant Likely's avatar
    of: Fix NULL dereference in selftest removal code · e66c98c7
    Grant Likely authored
    The selftest code removes its testcase data from the live tree when
    exiting, but if the testcases data tree contains an empty child of the
    root, then it causes an oops due to a NULL dereference. The reason is
    that the code tries to directly dereference the child pointer without
    checking first if a child is actually there.
    
    The solution is to pass the parent node into detach_node_and_children()
    instead of trying to pass the child. This required removing the code
    that attempts to remove all of the sibling nodes in
    detach_node_and_children(), which was never sensible in the first place.
    
    At the same time add a check to make sure the bounds of the nodes list
    are not exceeded by the testdata tree. If they are then abort.
    Signed-off-by: default avatarGrant Likely <grant.likely@linaro.org>
    Cc: Gaurav Minocha <gaurav.minocha.os@gmail.com>
    e66c98c7
selftest.c 22.5 KB