Commit 20df5678 authored by Ben Boeckel's avatar Ben Boeckel
Browse files

events: guard against NULL returns from imlib calls

This can happen with images that have ridiculous dimensions.
parent 7d154c00
Loading
Loading
Loading
Loading
+21 −17
Original line number Diff line number Diff line
@@ -632,6 +632,7 @@ static void feh_event_handle_MotionNotify(XEvent * ev)
				Imlib_Image temp;

				temp = gib_imlib_create_rotated_image(winwid->im, 0.0);
				if (temp != NULL) {
					winwid->im_w = gib_imlib_image_get_width(temp);
					winwid->im_h = gib_imlib_image_get_height(temp);
					gib_imlib_free_image_and_decache(temp);
@@ -639,6 +640,7 @@ static void feh_event_handle_MotionNotify(XEvent * ev)
						winwidget_resize(winwid, winwid->im_w, winwid->im_h, 0);
					winwid->has_rotated = 1;
				}
			}
			winwid->im_angle = (ev->xmotion.x - winwid->w / 2) / ((double) winwid->w / 2) * 3.1415926535;
			D(("angle: %f\n", winwid->im_angle));
			winwidget_render_image(winwid, 0, 1);
@@ -653,6 +655,7 @@ static void feh_event_handle_MotionNotify(XEvent * ev)
			D(("Blurring\n"));

			temp = gib_imlib_clone_image(winwid->im);
			if (temp != NULL) {
				blur_radius = (((double) ev->xmotion.x / winwid->w) * 20) - 10;
				D(("angle: %d\n", blur_radius));
				if (blur_radius > 0)
@@ -665,6 +668,7 @@ static void feh_event_handle_MotionNotify(XEvent * ev)
				gib_imlib_free_image_and_decache(winwid->im);
				winwid->im = ptr;
			}
		}
	} else {
		while (XCheckTypedWindowEvent(disp, ev->xmotion.window, MotionNotify, ev));
		winwid = winwidget_get_from_window(ev->xmotion.window);