ports/98590: [FIX] ports rxvt-devel on amd64 crashes inside rxvt_selection_send()

Yoshiaki Kasahara kasahara at nc.kyushu-u.ac.jp
Tue Jun 6 10:40:32 UTC 2006

>Number:         98590
>Category:       ports
>Synopsis:       [FIX] ports rxvt-devel on amd64 crashes inside rxvt_selection_send()
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jun 06 10:40:28 GMT 2006
>Originator:     Yoshiaki Kasahara
>Release:        FreeBSD 6.1-STABLE amd64
Kyushu University
FreeBSD elvenbow.cc.kyushu-u.ac.jp 6.1-STABLE FreeBSD 6.1-STABLE #0: Mon May  8 16:54:22 JST 2006     root at elvenbow.cc.kyushu-u.ac.jp:/usr/obj/usr/src/sys/ELVENBOW  amd64

I experienced repeatable crashes of x11/rxvt-devel with sysutils/synergy on amd64, saying "rxvt: XError: Request 18 . 0, Error: 2".  It always happened when a selection was active on the rxvt and the mouse pointer moved off from the X display to the synergy client display.

Here is the cause:  (screen.c line 3549~ inside rxvt_selection_send())

    } else if (rq->target == r->h->xa[XA_TIMESTAMP] && r->selection.text) {
        XChangeProperty(r->Xdisplay, rq->requestor, rq->property, XA_INTEGER,
                        (8 * sizeof(Time)), PropModeReplace,
                        (unsigned char *)&r->h->selection_time, 1);

On amd64, sizeof(Time) is 8, but 64 is invalid for XChangeProperty(),
and it generates BadValue error.  It should be 32 instead, which means "long".

Configure a synergy client and a synergy server.  Run rxvt-devel on the server side.
Select some text on the rxvt by a mouse.  Move the pointer over to the client side.

(I couldn't find more convenient way to invoke rxvt_selection_send)

Change (8 * sizeof(Time)) to 32 (more appropriate macro available?).


More information about the freebsd-ports-bugs mailing list