• Daniel Boles's avatar
    Container: Don’t scroll to unset focus child coord · cf955a54
    Daniel Boles authored
    In gtk_container_real_set_focus_child(), we try to scroll to the
    position of the new :focus-child if we have h or v adjustments.
    gtk_widget_translate_coordinates() returns FALSE if neither widget is
    realized or in other situations that cause output parameters x and y not
    to be set. Thus, if the caller did not initialise x/y and uses them even
    if the function returns FALSE, they are using uninitialised variables.
    In gtk_container_real_set_focus_child(), we did not check the return
    value but merrily went ahead and used x and y regardless. This is UB, as
    caught by Valgrind, as well as being pointless.
    The trivial fix is to exit early if (!gtk_widget_translate_coordinates).
gtkcontainer.c 123 KB