output: fix wlr_output_preferred_mode fallback
`mode` points to an invalid pointer (head of the list) when the loop
stops.
Closes:
@@ -406,7 +406,7 @@ struct wlr_output_mode *wlr_output_preferred_mode(struct wlr_output *output) {
}
// No preferred mode, choose the last one
- return mode;
+ return wl_container_of(output->modes.prev, mode, link);
}
static void output_state_clear_buffer(struct wlr_output_state *state) {
