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