rpms/kdelibs/devel kdelibs-4.0.3-kconfig_sync_crash.patch,1.3,1.4

Than Ngo (than) fedora-extras-commits at redhat.com
Fri Apr 4 14:04:44 UTC 2008


Author: than

Update of /cvs/extras/rpms/kdelibs/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv7432

Modified Files:
	kdelibs-4.0.3-kconfig_sync_crash.patch 
Log Message:
- better fix


kdelibs-4.0.3-kconfig_sync_crash.patch:

Index: kdelibs-4.0.3-kconfig_sync_crash.patch
===================================================================
RCS file: /cvs/extras/rpms/kdelibs/devel/kdelibs-4.0.3-kconfig_sync_crash.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- kdelibs-4.0.3-kconfig_sync_crash.patch	4 Apr 2008 13:23:32 -0000	1.3
+++ kdelibs-4.0.3-kconfig_sync_crash.patch	4 Apr 2008 14:04:32 -0000	1.4
@@ -1,6 +1,7 @@
-diff -up kdelibs-4.0.3/kdecore/kernel/kglobal.cpp.kconfig_sync_crash kdelibs-4.0.3/kdecore/kernel/kglobal.cpp
---- kdelibs-4.0.3/kdecore/kernel/kglobal.cpp.kconfig_sync_crash	2008-03-27 21:27:35.000000000 +0100
-+++ kdelibs-4.0.3/kdecore/kernel/kglobal.cpp	2008-04-04 14:49:03.000000000 +0200
+Index: kdelibs/kdecore/kernel/kglobal.cpp
+===================================================================
+--- kdelibs/kdecore/kernel/kglobal.cpp	(Revision 791351)
++++ kdelibs/kdecore/kernel/kglobal.cpp	(Revision 791352)
 @@ -28,6 +28,12 @@
  #include "kglobal.h"
  #include "kglobal_p.h"
@@ -14,59 +15,53 @@
  #include <QtCore/QList>
  #include <QtCore/QSet>
  
-@@ -40,6 +46,7 @@
- #include <QtCore/QCoreApplication>
- #include <QtCore/QTextCodec>
- #include "kcmdlineargs.h"
-+#include <unistd.h> // umask
- 
- #ifndef NDEBUG
- #define MYASSERT(x) if (!x) \
-@@ -55,6 +62,7 @@
- Q_CONSTRUCTOR_FUNCTION(qrand)
- 
- typedef QSet<QString> KStringDict;
-+mode_t s_umsk;
- 
- class KGlobalPrivate
- {
-@@ -64,6 +72,10 @@ class KGlobalPrivate
+@@ -64,6 +70,10 @@
              locale(0),
              charsets(0)
          {
 +            // the umask is read here before any threads are created to avoid race conditions
 +            mode_t tmp = 0;
-+            s_umsk = umask(tmp);
-+            umask(s_umsk);
++            umsk = umask(tmp);
++            umask(umsk);
          }
  
          inline ~KGlobalPrivate()
-@@ -151,6 +163,12 @@ KCharsets *KGlobal::charsets()
+@@ -81,6 +91,7 @@
+         KStringDict *stringDict;
+         KLocale *locale;
+         KCharsets *charsets;
++        mode_t umsk;
+ };
+ 
+ K_GLOBAL_STATIC(KGlobalPrivate, globalData)
+@@ -151,6 +162,12 @@
      return d->charsets;
  }
  
 +mode_t KGlobal::umask()
 +{
-+    // Don't use PRIVATE_DATA here. This is called by ~KGlobalPrivate -> ~KConfig -> sync -> KSaveFile, so there's no KGlobalPrivate anymore.
-+    return s_umsk;
++    PRIVATE_DATA;
++    return d->umsk;
 +}
 +
  KComponentData KGlobal::activeComponent()
  {
      PRIVATE_DATA;
-diff -up kdelibs-4.0.3/kdecore/kernel/kglobal.h.kconfig_sync_crash kdelibs-4.0.3/kdecore/kernel/kglobal.h
---- kdelibs-4.0.3/kdecore/kernel/kglobal.h.kconfig_sync_crash	2008-04-04 15:16:45.000000000 +0200
-+++ kdelibs-4.0.3/kdecore/kernel/kglobal.h	2008-04-04 15:19:49.000000000 +0200
-@@ -21,7 +21,7 @@
+Index: kdelibs/kdecore/kernel/kglobal.h
+===================================================================
+--- kdelibs/kdecore/kernel/kglobal.h	(Revision 791351)
++++ kdelibs/kdecore/kernel/kglobal.h	(Revision 791352)
+@@ -21,7 +21,9 @@
  
  #include <kdecore_export.h>
  #include <QtCore/QAtomicPointer>
--
 +#include <sys/types.h>
+ 
++
  //
  // WARNING!!
  // This code uses undocumented Qt API
-@@ -354,6 +354,12 @@ namespace KGlobal
+@@ -354,6 +356,12 @@
      KDECORE_EXPORT KCharsets *charsets();
  
      /**
@@ -79,3 +74,83 @@
       * Creates a static QString.
       *
       * To be used inside functions(!) like:
+Index: kdelibs/kdecore/io/ksavefile.cpp
+===================================================================
+--- kdelibs/kdecore/io/ksavefile.cpp	(Revision 791351)
++++ kdelibs/kdecore/io/ksavefile.cpp	(Revision 791352)
+@@ -119,6 +119,10 @@
+         if (!fchown(tempFile.handle(), fi.ownerId(), fi.groupId()))
+             tempFile.setPermissions(fi.permissions());
+     }
++    else {
++        mode_t umsk = KGlobal::umask();
++        fchmod(tempFile.handle(), 0666&(~umsk));
++    }
+ 
+     //Open oursleves with the temporary file
+     QFile::setFileName(tempFile.fileName());
+Index: kdelibs/kdecore/io/ktempdir.cpp
+===================================================================
+--- kdelibs/kdecore/io/ktempdir.cpp	(Revision 791351)
++++ kdelibs/kdecore/io/ktempdir.cpp	(Revision 791352)
+@@ -94,9 +94,7 @@
+    d->tmpName = QFile::decodeName(realNameStr)+'/';
+    kDebug(180) << "KTempDir: Temporary directory created :" << d->tmpName
+ 	        << endl;
+-   mode_t tmp = 0;
+-   mode_t umsk = umask(tmp);
+-   umask(umsk);
++   mode_t umsk = KGlobal::umask();
+    chmod(nme, mode&(~umsk));
+ 
+    // Success!
+Index: kdelibs/kdecore/kernel/kglobal.cpp
+===================================================================
+--- kdelibs/kdecore/kernel/kglobal.cpp	(Revision 793503)
++++ kdelibs/kdecore/kernel/kglobal.cpp	(Revision 793504)
+@@ -46,6 +46,7 @@
+ #include <QtCore/QCoreApplication>
+ #include <QtCore/QTextCodec>
+ #include "kcmdlineargs.h"
++#include <unistd.h> // umask
+ 
+ #ifndef NDEBUG
+ #define MYASSERT(x) if (!x) \
+@@ -61,6 +62,7 @@
+ Q_CONSTRUCTOR_FUNCTION(qrand)
+ 
+ typedef QSet<QString> KStringDict;
++mode_t s_umsk;
+ 
+ class KGlobalPrivate
+ {
+@@ -72,8 +74,8 @@
+         {
+             // the umask is read here before any threads are created to avoid race conditions
+             mode_t tmp = 0;
+-            umsk = umask(tmp);
+-            umask(umsk);
++            s_umsk = umask(tmp);
++            umask(s_umsk);
+         }
+ 
+         inline ~KGlobalPrivate()
+@@ -91,7 +93,6 @@
+         KStringDict *stringDict;
+         KLocale *locale;
+         KCharsets *charsets;
+-        mode_t umsk;
+ };
+ 
+ K_GLOBAL_STATIC(KGlobalPrivate, globalData)
+@@ -164,8 +165,8 @@
+ 
+ mode_t KGlobal::umask()
+ {
+-    PRIVATE_DATA;
+-    return d->umsk;
++    // Don't use PRIVATE_DATA here. This is called by ~KGlobalPrivate -> ~KConfig -> sync -> KSaveFile, so there's no KGlobalPrivate anymore.
++    return s_umsk;
+ }
+ 
+ KComponentData KGlobal::activeComponent()




More information about the fedora-extras-commits mailing list