testdisplay: Fix segfault after first modeset fails

When testing all modes on a connector with a single mode, if the modeset
fails, the code attempts to remove fb_info[-1], because old_fb still has
the inital value of -1.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90625
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
This commit is contained in:
Ander Conselvan de Oliveira 2015-05-27 10:33:41 +03:00 committed by Thomas Wood
parent 93f1250013
commit 571942f0c4

View File

@ -364,6 +364,7 @@ set_mode(struct connector *c)
if (drmModeSetCrtc(drm_fd, c->crtc, fb_id, 0, 0,
&c->id, 1, &c->mode)) {
igt_warn("failed to set mode (%dx%d@%dHz): %s\n", width, height, c->mode.vrefresh, strerror(errno));
igt_remove_fb(drm_fd, &fb_info[current_fb]);
continue;
}
@ -387,7 +388,7 @@ set_mode(struct connector *c)
}
}
if (test_all_modes)
if (test_all_modes && old_fb != -1)
igt_remove_fb(drm_fd, &fb_info[old_fb]);
drmModeFreeEncoder(c->encoder);