ports/114869: patch: sysutils/synergy - provide additional upstream patch

Emanuel Haupt ehaupt at FreeBSD.org
Tue Jul 24 15:30:03 UTC 2007


>Number:         114869
>Category:       ports
>Synopsis:       patch: sysutils/synergy - provide additional upstream patch
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jul 24 15:30:02 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Emanuel Haupt
>Release:        FreeBSD 6.2-STABLE i386
>Organization:
>Environment:
System: FreeBSD freefall.freebsd.org 6.2-STABLE FreeBSD 6.2-STABLE #0: Fri Jul 13 03:43:15 UTC 2007 peter at freefall.freebsd.org:/usr/obj/usr/src/sys/FREEFALL i386


	
>Description:
This patch fixes a bug when a Windows XP client sends an invalid mouse
position to the server at initial connect.

Since it's in the project bugtracking db I assue the patch will also go the the
next upstream version.

Also bump PORTREVISION.

Obtained from:	https://sourceforge.net/tracker/index.php?func=detail&aid=1551788&group_id=59275&atid=490469

>How-To-Repeat:
	
>Fix:

	

--- synergy.patch begins here ---
Index: Makefile
===================================================================
RCS file: /home/pcvs/ports/sysutils/synergy/Makefile,v
retrieving revision 1.13
diff -u -r1.13 Makefile
--- Makefile	7 Jun 2007 04:28:36 -0000	1.13
+++ Makefile	24 Jul 2007 15:15:56 -0000
@@ -7,7 +7,7 @@
 
 PORTNAME=	synergy
 PORTVERSION= 	1.3.1
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	sysutils
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
 MASTER_SITE_SUBDIR=	${PORTNAME}2
Index: files/patch-lib__server__CClientProxy1_0.cpp
===================================================================
RCS file: files/patch-lib__server__CClientProxy1_0.cpp
diff -N files/patch-lib__server__CClientProxy1_0.cpp
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-lib__server__CClientProxy1_0.cpp	24 Jul 2007 15:15:56 -0000
@@ -0,0 +1,28 @@
+--- ./lib/server/CClientProxy1_0.cpp.orig	2006-04-02 03:47:03.000000000 +0200
++++ ./lib/server/CClientProxy1_0.cpp	2007-07-24 16:59:59.000000000 +0200
+@@ -401,7 +401,7 @@
+ 							&x, &y, &w, &h, &dummy1, &mx, &my)) {
+ 		return false;
+ 	}
+-	LOG((CLOG_DEBUG "received client \"%s\" info shape=%d,%d %dx%d", getName().c_str(), x, y, w, h));
++	LOG((CLOG_DEBUG "received client \"%s\" info shape=%d,%d %dx%d mouse=%d,%d", getName().c_str(), x, y, w, h, mx, my));
+ 
+ 	// validate
+ 	if (w <= 0 || h <= 0) {
+@@ -413,8 +413,14 @@
+ 	m_info.m_y  = y;
+ 	m_info.m_w  = w;
+ 	m_info.m_h  = h;
+-	m_info.m_mx = mx;
+-	m_info.m_my = my;
++	
++	if(mx >= x && mx < x+w && my >= y && my < y+h) {
++		m_info.m_mx = mx;
++		m_info.m_my = my;
++	} else {
++		m_info.m_mx = x + w/2;
++		m_info.m_my = y + h/2;
++	}
+ 
+ 	// acknowledge receipt
+ 	LOG((CLOG_DEBUG1 "send info ack to \"%s\"", getName().c_str()));
Index: files/patch-lib__server__CServer.cpp
===================================================================
RCS file: files/patch-lib__server__CServer.cpp
diff -N files/patch-lib__server__CServer.cpp
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-lib__server__CServer.cpp	24 Jul 2007 15:15:56 -0000
@@ -0,0 +1,30 @@
+--- ./lib/server/CServer.cpp.orig	2006-04-02 03:47:04.000000000 +0200
++++ ./lib/server/CServer.cpp	2007-07-24 16:59:59.000000000 +0200
+@@ -434,16 +434,23 @@
+ 				SInt32 x, SInt32 y, bool forScreensaver)
+ {
+ 	assert(dst != NULL);
++	assert(m_active != NULL);
++
++	LOG((CLOG_INFO "switch from \"%s\" to \"%s\" at %d,%d", getName(m_active).c_str(), getName(dst).c_str(), x, y));
++
+ #ifndef NDEBUG
+ 	{
+ 		SInt32 dx, dy, dw, dh;
+ 		dst->getShape(dx, dy, dw, dh);
+-		assert(x >= dx && y >= dy && x < dx + dw && y < dy + dh);
++
++		if(!(x >= dx && y >= dy && x < dx + dw && y < dy + dh)) {
++			LOG((CLOG_ERR "debug check failed"));
++			LOG((CLOG_ERR "x=%d dx=%d dw=%d", x, dx, dw));
++			LOG((CLOG_ERR "y=%d dy=%d dh=%d", y, dy, dh));
++			assert(0);
++		}
+ 	}
+ #endif
+-	assert(m_active != NULL);
+-
+-	LOG((CLOG_INFO "switch from \"%s\" to \"%s\" at %d,%d", getName(m_active).c_str(), getName(dst).c_str(), x, y));
+ 
+ 	// stop waiting to switch
+ 	stopSwitch();
--- synergy.patch ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list