rpms/xorg-x11-server/F-12 xserver-1.7.1-stat-sanity.patch, NONE, 1.1 xorg-x11-server.spec, 1.504, 1.505

Peter Hutterer whot at fedoraproject.org
Fri Nov 20 02:19:39 UTC 2009


Author: whot

Update of /cvs/pkgs/rpms/xorg-x11-server/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5000

Modified Files:
	xorg-x11-server.spec 
Added Files:
	xserver-1.7.1-stat-sanity.patch 
Log Message:
* Fri Nov 20 2009 Peter Hutterer <peter.hutterer at redhat.com> 1.7.1-9
- xserver-1.7.1-stat-sanity.patch: stat directories that actually exist
  (possibly #537737).


xserver-1.7.1-stat-sanity.patch:
 loadmod.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

--- NEW FILE xserver-1.7.1-stat-sanity.patch ---
>From 2db157924b582933c4b6897505e6f4170e23b56f Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied at redhat.com>
Date: Tue, 13 Oct 2009 10:15:00 +1000
Subject: [PATCH] loader: actually stat something that has some chance of existing. (v2)

FindModuleInSubdir seems to expect a / at the end of the subdir its
finding for, so we add the / early, the stat will fail if its
not a subdir, I'm leaving the S_ISDIR in just in case there is another
reason it could return 0. This does look a bit silly in strace
but it seems to work fine.

I have a very intermittent issue where drivers loses its / that
I've been seeing on/off for a while, this may or may not fix it.

Signed-off-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Julien Cristau <jcristau at debian.org>
Signed-off-by: Keith Packard <keithp at keithp.com>
(cherry picked from commit d85ab6b6483d6ca7d9d22298d05ed1fa3076b042)
---
 hw/xfree86/loader/loadmod.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
index 0b220f1..5b175a5 100644
--- a/hw/xfree86/loader/loadmod.c
+++ b/hw/xfree86/loader/loadmod.c
@@ -399,8 +399,11 @@ FindModuleInSubdir(const char *dirpath, const char *module)
     while ((direntry = readdir(dir))) {
         if (direntry->d_name[0] == '.')
             continue;
-        if ((stat(direntry->d_name, &stat_buf) == 0) && S_ISDIR(stat_buf.st_mode)) {
-            snprintf(tmpBuf, PATH_MAX, "%s/%s", dirpath, direntry->d_name);
+        snprintf(tmpBuf, PATH_MAX, "%s%s/", dirpath, direntry->d_name);
+	/* the stat with the appended / fails for normal files,
+	   and works for sub dirs fine, looks a bit strange in strace
+	   but does seem to work */
+        if ((stat(tmpBuf, &stat_buf) == 0) && S_ISDIR(stat_buf.st_mode)) {
             if ((ret = FindModuleInSubdir(tmpBuf, module)))
                 break;
             continue;
-- 
1.6.5.2



Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/F-12/xorg-x11-server.spec,v
retrieving revision 1.504
retrieving revision 1.505
diff -u -p -r1.504 -r1.505
--- xorg-x11-server.spec	16 Nov 2009 23:28:32 -0000	1.504
+++ xorg-x11-server.spec	20 Nov 2009 02:19:38 -0000	1.505
@@ -19,7 +19,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.7.1
-Release:   8%{dist}
+Release:   9%{dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X
@@ -81,6 +81,7 @@ Patch6050: xserver-1.7.1-window-pictures
 Patch6051: xserver-1.7.1-gamma-kdm-fix.patch
 Patch6052: xserver-1.7.1-libcrypto.patch
 Patch6053: xserver-1.7.1-sigaction.patch
+Patch6054: xserver-1.7.1-stat-sanity.patch
 
 %define moduledir	%{_libdir}/xorg/modules
 %define drimoduledir	%{_libdir}/dri
@@ -508,6 +509,10 @@ rm -rf $RPM_BUILD_ROOT
 %{xserver_source_dir}
 
 %changelog
+* Fri Nov 20 2009 Peter Hutterer <peter.hutterer at redhat.com> 1.7.1-9
+- xserver-1.7.1-stat-sanity.patch: stat directories that actually exist
+  (possibly #537737).
+
 * Mon Nov 16 2009 Adam Jackson <ajax at redhat.com> 1.7.1-8
 - xserver-1.7.1-libcrypto.patch: Avoid linking against libssl, which is huge
   and drags in dependent libs we don't care about.




More information about the scm-commits mailing list