$OpenBSD: patch-src_video_x11_SDL_x11video_c,v 1.3 2012/03/02 09:10:38 dcoppa Exp $

Fixed bug 1427 - integer passed to XChangeProperty() causes crash

--- src/video/x11/SDL_x11video.c.orig	Wed Feb 22 19:34:11 2012
+++ src/video/x11/SDL_x11video.c	Wed Feb 22 19:36:25 2012
@@ -418,16 +418,21 @@ static void create_aux_windows(_THIS)
     }
 
 	{
-		pid_t pid = getpid();
+		union align_pid {
+			pid_t pid;
+			long dummy;
+		} a_pid;
 		char hostname[256];
 
-		if (pid > 0 && gethostname(hostname, sizeof(hostname)) > -1) {
+		a_pid.pid = getpid();
+
+		if (a_pid.pid > 0 && gethostname(hostname, sizeof(hostname)) > -1) {
 			Atom _NET_WM_PID = XInternAtom(SDL_Display, "_NET_WM_PID", False);
 			Atom WM_CLIENT_MACHINE = XInternAtom(SDL_Display, "WM_CLIENT_MACHINE", False);
 			
 			hostname[sizeof(hostname)-1] = '\0';
 			XChangeProperty(SDL_Display, WMwindow, _NET_WM_PID, XA_CARDINAL, 32,
-					PropModeReplace, (unsigned char *)&pid, 1);
+					PropModeReplace, (unsigned char *)&a_pid.pid, 1);
 			XChangeProperty(SDL_Display, WMwindow, WM_CLIENT_MACHINE, XA_STRING, 8,
 					PropModeReplace, (unsigned char *)hostname, SDL_strlen(hostname));
 		}
