Subject: pkg/37057: MPlayer crashes on sparc64 within the x11 video driver
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Pierre Pronchery <khorben@defora.org>
List: pkgsrc-bugs
Date: 10/03/2007 21:00:00
>Number: 37057
>Category: pkg
>Synopsis: MPlayer crashes on sparc64 within the x11 video driver
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Oct 03 21:00:00 +0000 2007
>Originator: khorben@defora.org
>Release: NetBSD 4.99.31
>Organization:
>Environment:
System: NetBSD exxh.defora.lan 4.99.31 NetBSD 4.99.31 (GENERIC) #0: Sun Sep 30 18:22:11 CEST 2007 khorben@exxh.defora.lan:/usr/obj/sys/arch/sparc64/compile/GENERIC sparc64
Architecture: sparc64
Machine: sparc64
>Description:
Just like as reported in pkg/37054, MPlayer crashes due to incorrect usage of
XChangeProperty() with a bus error. In libvo/x11_common.c:
935 void vo_x11_classhint(Display * display, Window window, char *name)
936 {
937 XClassHint wmClass;
938 pid_t pid = getpid();
939
940 wmClass.res_name = name;
941 wmClass.res_class = "MPlayer";
942 XSetClassHint(display, window, &wmClass);
943 XChangeProperty(display, window, XA_NET_WM_PID, XA_CARDINAL, 32,
944 PropModeReplace, (unsigned char *) &pid, 1);
945 }
The pid variable at line 938 is not aligned on the size of a long.
>How-To-Repeat:
Use MPlayer mplayer-1.0rc9nb9 from pkgsrc on sparc64 with the x11 video output
plug-in.
>Fix:
The following patch fixes the problem:
$NetBSD$
--- libvo/x11_common.c.orig 2006-10-23 00:32:26.000000000 +0200
+++ libvo/x11_common.c
@@ -935,7 +935,7 @@ void vo_x11_decoration(Display * vo_Disp
void vo_x11_classhint(Display * display, Window window, char *name)
{
XClassHint wmClass;
- pid_t pid = getpid();
+ long pid = getpid();
wmClass.res_name = name;
wmClass.res_class = "MPlayer";