Fix use after free in DPI computation

This commit is contained in:
o9000 2018-01-19 21:21:22 +00:00
parent 41e49ef4e6
commit b2b0119f4d

View file

@ -358,7 +358,6 @@ void get_monitors()
for (int j = 0; j < crtc_info->noutput; ++j) {
XRROutputInfo *output_info = XRRGetOutputInfo(server.display, res, crtc_info->outputs[j]);
server.monitors[i_monitor].names[j] = g_strdup(output_info->name);
XRRFreeOutputInfo(output_info);
server.monitors[i_monitor].primary = crtc_info->outputs[j] == primary_output;
int dpi = compute_dpi(crtc_info, output_info);
if (dpi)
@ -370,6 +369,7 @@ void get_monitors()
server.monitors[i_monitor].width,
server.monitors[i_monitor].height,
server.monitors[i_monitor].dpi);
XRRFreeOutputInfo(output_info);
}
server.monitors[i_monitor].names[crtc_info->noutput] = NULL;
XRRFreeCrtcInfo(crtc_info);