rpms/vnc/F-7 vnc-bounds.patch,NONE,1.1 vnc.spec,1.179,1.180

Adam Tkac (atkac) fedora-extras-commits at redhat.com
Wed Mar 19 11:42:19 UTC 2008


Author: atkac

Update of /cvs/pkgs/rpms/vnc/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv4070

Modified Files:
	vnc.spec 
Added Files:
	vnc-bounds.patch 
Log Message:
- validate framebuffer bounds before GetImage call (#430468)


vnc-bounds.patch:

--- NEW FILE vnc-bounds.patch ---
diff -up vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/XserverDesktop.cc.bounds vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/XserverDesktop.cc
--- vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/XserverDesktop.cc.bounds	2008-03-17 16:46:27.000000000 +0100
+++ vnc-4_1_2-unixsrc/unix/xorg-x11-server-source/hw/vnc/XserverDesktop.cc	2008-03-17 16:59:11.000000000 +0100
@@ -486,32 +486,36 @@ void XserverDesktop::add_changed(RegionP
 {
   if (ignoreHooks_) return;
   if (grabbing) return;
+
+  BoxRec screenbox;
+  RegionPtr newreg = REGION_CREATE(pScreen, 0, 0);
+
+  screenbox.x1 = screenbox.y1 = 0;
+  screenbox.x2 = pScreen->width;
+  screenbox.y2 = pScreen->height;
+
+  RegionPtr screenreg = REGION_CREATE(pScreen, &screenbox, 0);
+  REGION_INTERSECT(pScreen, newreg, reg, screenreg);
+  REGION_DESTROY (pScreen, screenreg);
+
   try {
     rfb::Region rfbReg;
-    rfbReg.setExtentsAndOrderedRects((ShortRect*)REGION_EXTENTS(pScreen, reg),
-                                     REGION_NUM_RECTS(reg),
-                                     (ShortRect*)REGION_RECTS(reg));
+    rfbReg.setExtentsAndOrderedRects((ShortRect*)REGION_EXTENTS(pScreen, newreg),
+                                     REGION_NUM_RECTS(newreg),
+                                     (ShortRect*)REGION_RECTS(newreg));
     server->add_changed(rfbReg);
     deferUpdate();
   } catch (rdr::Exception& e) {
     vlog.error("XserverDesktop::add_changed: %s",e.str());
   }
+  REGION_DESTROY (pScreen, newreg);
 }
 
 void XserverDesktop::add_copied(RegionPtr dst, int dx, int dy)
 {
-  if (ignoreHooks_) return;
-  if (grabbing) return;
-  try {
-    rfb::Region rfbReg;
-    rfbReg.setExtentsAndOrderedRects((ShortRect*)REGION_EXTENTS(pScreen, dst),
-                                     REGION_NUM_RECTS(dst),
-                                     (ShortRect*)REGION_RECTS(dst));
-    server->add_copied(rfbReg, rfb::Point(dx, dy));
-    deferUpdate();
-  } catch (rdr::Exception& e) {
-    vlog.error("XserverDesktop::add_copied: %s",e.str());
-  }
+  add_changed (dst);
+  REGION_TRANSLATE (pScreen, dst, -dx, -dy);
+  add_changed (dst);
 }
 
 void XserverDesktop::positionCursor()


Index: vnc.spec
===================================================================
RCS file: /cvs/pkgs/rpms/vnc/F-7/vnc.spec,v
retrieving revision 1.179
retrieving revision 1.180
diff -u -r1.179 -r1.180
--- vnc.spec	24 Oct 2007 11:55:07 -0000	1.179
+++ vnc.spec	19 Mar 2008 11:41:45 -0000	1.180
@@ -4,7 +4,7 @@
 Summary:   A remote display system
 Name:      vnc
 Version:   4.1.2
-Release:   19%{?dist}
+Release:   20%{?dist}
 URL:       http://www.realvnc.com
 Source0:   http://www.realvnc.com/dist/vnc-%{vnc_version}-unixsrc.tar.gz
 Source1:   http://www.realvnc.com/dist/vnc-%{java_vnc_version}-javasrc.tar.gz
@@ -38,6 +38,7 @@
 Patch35:   vnc-module_crash.patch
 Patch36:   vnc-24bit.patch
 Patch37:   vnc-noxorg.patch
+Patch38:   vnc-bounds.patch
 License:   GPL
 Group:     User Interface/Desktops
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
@@ -126,6 +127,8 @@
 sed -i -e 's,xor,c_xor,' -e 's,and,c_and,' \
 	unix/xorg-x11-server-source/hw/vnc/{cfb,fb,fbrop}.h
 
+%patch38 -p1 -b .bounds
+
 %build
 cd common
 autoreconf --install --force
@@ -313,6 +316,9 @@
 %{_libdir}/librfb.so.*
 
 %changelog
+* Wed Mar 19 2008 Adam Tkac <atkac redhat com> 4.1.2-20
+- validate framebuffer bounds before GetImage call (#430468)
+
 * Tue Oct 23 2007 Adam Tkac <atkac redhat com> 4.1.2-19
 - disabled Composite extension (#242280, #339811)
 




More information about the fedora-extras-commits mailing list