- Use shutdown -p now by default as kdm HALT_CMD.

- Fix KDE Bug 128663 (double-free in kpager)
- Fix KDE Bug 128757 (regression media:/ kioslave)

PR: ports/98918

Security: http://www.kde.org/info/security/advisory-20060614-1.txt
Security: CVE-2006-2449
This commit is contained in:
Michael Nottebrock 2006-06-14 18:53:15 +00:00
parent 700ccde3f7
commit 3b7843e6f8
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=165444
42 changed files with 672 additions and 98 deletions

View file

@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src

View file

@ -0,0 +1,11 @@
--- kdm/config.def.orig Wed Jun 14 17:51:42 2006
+++ kdm/config.def Wed Jun 14 17:51:57 2006
@@ -36,7 +36,7 @@
# define HALT_CMD "/usr/sbin/shutdown -h now"
# define REBOOT_CMD "/usr/sbin/shutdown -r now"
#elif defined(BSD)
-# define HALT_CMD "/sbin/shutdown -h now"
+# define HALT_CMD "/sbin/shutdown -p now"
# define REBOOT_CMD "/sbin/shutdown -r now"
#elif defined(__SVR4)
# define HALT_CMD "/usr/sbin/halt"

View file

@ -1,5 +1,5 @@
--- kioslave/media/mediamanager/fstabbackend.cpp Mon May 22 20:12:42 2006
+++ kioslave/media/mediamanager/fstabbackend.cpp Fri Mar 17 11:17:33 2006
--- kioslave/media/mediamanager/fstabbackend.cpp 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.cpp 2006/06/14 09:11:46 551306
@@ -144,7 +144,7 @@
void FstabBackend::handleMtabChange(bool allowNotification)
@ -9,26 +9,46 @@
KMountPoint::List mtab = KMountPoint::currentMountPoints();
KMountPoint::List::iterator it = mtab.begin();
@@ -158,14 +158,6 @@
if ( ::inExclusionPattern(*it, m_networkSharesOnly) ) continue;
- /* Did we know this already before ? If yes, then
- nothing has changed, do not stat the mount point. Avoids
- hang if network shares are stalling */
- QString mtabEntry = dev + "*" + mp + "*" + fs;
@@ -162,18 +162,19 @@
nothing has changed, do not stat the mount point. Avoids
hang if network shares are stalling */
QString mtabEntry = dev + "*" + mp + "*" + fs;
- bool isOldEntry = m_mtabEntries.contains(mtabEntry);
- new_mtabEntries+=mtabEntry;
- if (isOldEntry) continue;
-
+ if(m_mtabEntries.contains(mtabEntry)) {
+ new_mtabIds += m_mtabEntries[mtabEntry];
+ continue;
+ }
QString id = generateId(dev, mp);
new_mtabIds+=id;
+ m_mtabEntries[mtabEntry] = id;
@@ -226,7 +218,6 @@
if ( !m_mtabIds.contains(id) && m_fstabIds.contains(id) )
{
QString mime, icon, label;
guess(dev, mp, fs, true, mime, icon, label);
-
m_mediaList.changeMediumState(id, true, false,
mime, icon, label);
}
@@ -211,6 +212,10 @@
QString mp = medium->mountPoint();
QString fs = medium->fsType();
+
+ QString mtabEntry = dev + "*" + mp + "*" + fs;
+ m_mtabEntries.remove(mtabEntry);
+
QString mime, icon, label;
guess(dev, mp, fs, false, mime, icon, label);
@@ -226,7 +231,6 @@
}
m_mtabIds = new_mtabIds;
- m_mtabEntries = new_mtabEntries;
}
void FstabBackend::handleFstabChange(bool allowNotification)
void FstabBackend::handleFstabChange(bool allowNotification)

View file

@ -0,0 +1,19 @@
--- kioslave/media/mediamanager/fstabbackend.h 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.h 2006/06/14 09:11:46 551306
@@ -23,6 +23,7 @@
#include <qobject.h>
#include <qstringlist.h>
+#include <qmap.h>
#ifdef Q_OS_FREEBSD
#include <qtimer.h>
@@ -53,7 +54,7 @@
bool m_networkSharesOnly;
QStringList m_mtabIds;
- QStringList m_mtabEntries;
+ QMap<QString, QString> m_mtabEntries;
QStringList m_fstabIds;
#ifdef Q_OS_FREEBSD
QTimer m_mtabTimer;

View file

@ -0,0 +1,11 @@
--- kpager/windowdrag.cpp 2006/05/23 12:51:36 544025
+++ kpager/windowdrag.cpp 2006/06/05 19:55:59 548525
@@ -31,7 +31,7 @@
QString tmp;
tmp.sprintf("%d %d %d %d", static_cast<int>(w), deltax, deltay, origdesk);
QByteArray data(tmp.length()+1);
- data.assign(tmp.latin1(),tmp.length()+1);
+ data.duplicate(tmp.latin1(),tmp.length()+1);
setEncodedData(data);
}

View file

@ -0,0 +1,21 @@
Index: kdm/backend/client.c
===================================================================
--- kdm/backend/client.c (revision 547560)
+++ kdm/backend/client.c (working copy)
@@ -1537,16 +1542,6 @@ ReadDmrc()
if (!StrApp( &fname, p->pw_dir, "/.dmrc", (char *)0 ))
return GE_Error;
- if ((curdmrc = iniLoad( fname ))) {
- free( fname );
- return GE_Ok;
- }
-
- if (errno != EACCES) {
- free( fname );
- return GE_NoFile;
- }
-
if (pipe( pfd ))
return GE_Error;
if ((pid = Fork()) < 0) {

View file

@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src

View file

@ -0,0 +1,11 @@
--- kdm/config.def.orig Wed Jun 14 17:51:42 2006
+++ kdm/config.def Wed Jun 14 17:51:57 2006
@@ -36,7 +36,7 @@
# define HALT_CMD "/usr/sbin/shutdown -h now"
# define REBOOT_CMD "/usr/sbin/shutdown -r now"
#elif defined(BSD)
-# define HALT_CMD "/sbin/shutdown -h now"
+# define HALT_CMD "/sbin/shutdown -p now"
# define REBOOT_CMD "/sbin/shutdown -r now"
#elif defined(__SVR4)
# define HALT_CMD "/usr/sbin/halt"

View file

@ -1,5 +1,5 @@
--- kioslave/media/mediamanager/fstabbackend.cpp Mon May 22 20:12:42 2006
+++ kioslave/media/mediamanager/fstabbackend.cpp Fri Mar 17 11:17:33 2006
--- kioslave/media/mediamanager/fstabbackend.cpp 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.cpp 2006/06/14 09:11:46 551306
@@ -144,7 +144,7 @@
void FstabBackend::handleMtabChange(bool allowNotification)
@ -9,26 +9,46 @@
KMountPoint::List mtab = KMountPoint::currentMountPoints();
KMountPoint::List::iterator it = mtab.begin();
@@ -158,14 +158,6 @@
if ( ::inExclusionPattern(*it, m_networkSharesOnly) ) continue;
- /* Did we know this already before ? If yes, then
- nothing has changed, do not stat the mount point. Avoids
- hang if network shares are stalling */
- QString mtabEntry = dev + "*" + mp + "*" + fs;
@@ -162,18 +162,19 @@
nothing has changed, do not stat the mount point. Avoids
hang if network shares are stalling */
QString mtabEntry = dev + "*" + mp + "*" + fs;
- bool isOldEntry = m_mtabEntries.contains(mtabEntry);
- new_mtabEntries+=mtabEntry;
- if (isOldEntry) continue;
-
+ if(m_mtabEntries.contains(mtabEntry)) {
+ new_mtabIds += m_mtabEntries[mtabEntry];
+ continue;
+ }
QString id = generateId(dev, mp);
new_mtabIds+=id;
+ m_mtabEntries[mtabEntry] = id;
@@ -226,7 +218,6 @@
if ( !m_mtabIds.contains(id) && m_fstabIds.contains(id) )
{
QString mime, icon, label;
guess(dev, mp, fs, true, mime, icon, label);
-
m_mediaList.changeMediumState(id, true, false,
mime, icon, label);
}
@@ -211,6 +212,10 @@
QString mp = medium->mountPoint();
QString fs = medium->fsType();
+
+ QString mtabEntry = dev + "*" + mp + "*" + fs;
+ m_mtabEntries.remove(mtabEntry);
+
QString mime, icon, label;
guess(dev, mp, fs, false, mime, icon, label);
@@ -226,7 +231,6 @@
}
m_mtabIds = new_mtabIds;
- m_mtabEntries = new_mtabEntries;
}
void FstabBackend::handleFstabChange(bool allowNotification)
void FstabBackend::handleFstabChange(bool allowNotification)

View file

@ -0,0 +1,19 @@
--- kioslave/media/mediamanager/fstabbackend.h 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.h 2006/06/14 09:11:46 551306
@@ -23,6 +23,7 @@
#include <qobject.h>
#include <qstringlist.h>
+#include <qmap.h>
#ifdef Q_OS_FREEBSD
#include <qtimer.h>
@@ -53,7 +54,7 @@
bool m_networkSharesOnly;
QStringList m_mtabIds;
- QStringList m_mtabEntries;
+ QMap<QString, QString> m_mtabEntries;
QStringList m_fstabIds;
#ifdef Q_OS_FREEBSD
QTimer m_mtabTimer;

View file

@ -0,0 +1,11 @@
--- kpager/windowdrag.cpp 2006/05/23 12:51:36 544025
+++ kpager/windowdrag.cpp 2006/06/05 19:55:59 548525
@@ -31,7 +31,7 @@
QString tmp;
tmp.sprintf("%d %d %d %d", static_cast<int>(w), deltax, deltay, origdesk);
QByteArray data(tmp.length()+1);
- data.assign(tmp.latin1(),tmp.length()+1);
+ data.duplicate(tmp.latin1(),tmp.length()+1);
setEncodedData(data);
}

View file

@ -0,0 +1,21 @@
Index: kdm/backend/client.c
===================================================================
--- kdm/backend/client.c (revision 547560)
+++ kdm/backend/client.c (working copy)
@@ -1537,16 +1542,6 @@ ReadDmrc()
if (!StrApp( &fname, p->pw_dir, "/.dmrc", (char *)0 ))
return GE_Error;
- if ((curdmrc = iniLoad( fname ))) {
- free( fname );
- return GE_Ok;
- }
-
- if (errno != EACCES) {
- free( fname );
- return GE_NoFile;
- }
-
if (pipe( pfd ))
return GE_Error;
if ((pid = Fork()) < 0) {

View file

@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src

View file

@ -0,0 +1,11 @@
--- kdm/config.def.orig Wed Jun 14 17:51:42 2006
+++ kdm/config.def Wed Jun 14 17:51:57 2006
@@ -36,7 +36,7 @@
# define HALT_CMD "/usr/sbin/shutdown -h now"
# define REBOOT_CMD "/usr/sbin/shutdown -r now"
#elif defined(BSD)
-# define HALT_CMD "/sbin/shutdown -h now"
+# define HALT_CMD "/sbin/shutdown -p now"
# define REBOOT_CMD "/sbin/shutdown -r now"
#elif defined(__SVR4)
# define HALT_CMD "/usr/sbin/halt"

View file

@ -1,5 +1,5 @@
--- kioslave/media/mediamanager/fstabbackend.cpp Mon May 22 20:12:42 2006
+++ kioslave/media/mediamanager/fstabbackend.cpp Fri Mar 17 11:17:33 2006
--- kioslave/media/mediamanager/fstabbackend.cpp 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.cpp 2006/06/14 09:11:46 551306
@@ -144,7 +144,7 @@
void FstabBackend::handleMtabChange(bool allowNotification)
@ -9,26 +9,46 @@
KMountPoint::List mtab = KMountPoint::currentMountPoints();
KMountPoint::List::iterator it = mtab.begin();
@@ -158,14 +158,6 @@
if ( ::inExclusionPattern(*it, m_networkSharesOnly) ) continue;
- /* Did we know this already before ? If yes, then
- nothing has changed, do not stat the mount point. Avoids
- hang if network shares are stalling */
- QString mtabEntry = dev + "*" + mp + "*" + fs;
@@ -162,18 +162,19 @@
nothing has changed, do not stat the mount point. Avoids
hang if network shares are stalling */
QString mtabEntry = dev + "*" + mp + "*" + fs;
- bool isOldEntry = m_mtabEntries.contains(mtabEntry);
- new_mtabEntries+=mtabEntry;
- if (isOldEntry) continue;
-
+ if(m_mtabEntries.contains(mtabEntry)) {
+ new_mtabIds += m_mtabEntries[mtabEntry];
+ continue;
+ }
QString id = generateId(dev, mp);
new_mtabIds+=id;
+ m_mtabEntries[mtabEntry] = id;
@@ -226,7 +218,6 @@
if ( !m_mtabIds.contains(id) && m_fstabIds.contains(id) )
{
QString mime, icon, label;
guess(dev, mp, fs, true, mime, icon, label);
-
m_mediaList.changeMediumState(id, true, false,
mime, icon, label);
}
@@ -211,6 +212,10 @@
QString mp = medium->mountPoint();
QString fs = medium->fsType();
+
+ QString mtabEntry = dev + "*" + mp + "*" + fs;
+ m_mtabEntries.remove(mtabEntry);
+
QString mime, icon, label;
guess(dev, mp, fs, false, mime, icon, label);
@@ -226,7 +231,6 @@
}
m_mtabIds = new_mtabIds;
- m_mtabEntries = new_mtabEntries;
}
void FstabBackend::handleFstabChange(bool allowNotification)
void FstabBackend::handleFstabChange(bool allowNotification)

View file

@ -0,0 +1,19 @@
--- kioslave/media/mediamanager/fstabbackend.h 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.h 2006/06/14 09:11:46 551306
@@ -23,6 +23,7 @@
#include <qobject.h>
#include <qstringlist.h>
+#include <qmap.h>
#ifdef Q_OS_FREEBSD
#include <qtimer.h>
@@ -53,7 +54,7 @@
bool m_networkSharesOnly;
QStringList m_mtabIds;
- QStringList m_mtabEntries;
+ QMap<QString, QString> m_mtabEntries;
QStringList m_fstabIds;
#ifdef Q_OS_FREEBSD
QTimer m_mtabTimer;

View file

@ -0,0 +1,11 @@
--- kpager/windowdrag.cpp 2006/05/23 12:51:36 544025
+++ kpager/windowdrag.cpp 2006/06/05 19:55:59 548525
@@ -31,7 +31,7 @@
QString tmp;
tmp.sprintf("%d %d %d %d", static_cast<int>(w), deltax, deltay, origdesk);
QByteArray data(tmp.length()+1);
- data.assign(tmp.latin1(),tmp.length()+1);
+ data.duplicate(tmp.latin1(),tmp.length()+1);
setEncodedData(data);
}

View file

@ -0,0 +1,21 @@
Index: kdm/backend/client.c
===================================================================
--- kdm/backend/client.c (revision 547560)
+++ kdm/backend/client.c (working copy)
@@ -1537,16 +1542,6 @@ ReadDmrc()
if (!StrApp( &fname, p->pw_dir, "/.dmrc", (char *)0 ))
return GE_Error;
- if ((curdmrc = iniLoad( fname ))) {
- free( fname );
- return GE_Ok;
- }
-
- if (errno != EACCES) {
- free( fname );
- return GE_NoFile;
- }
-
if (pipe( pfd ))
return GE_Error;
if ((pid = Fork()) < 0) {

View file

@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src

View file

@ -0,0 +1,11 @@
--- kdm/config.def.orig Wed Jun 14 17:51:42 2006
+++ kdm/config.def Wed Jun 14 17:51:57 2006
@@ -36,7 +36,7 @@
# define HALT_CMD "/usr/sbin/shutdown -h now"
# define REBOOT_CMD "/usr/sbin/shutdown -r now"
#elif defined(BSD)
-# define HALT_CMD "/sbin/shutdown -h now"
+# define HALT_CMD "/sbin/shutdown -p now"
# define REBOOT_CMD "/sbin/shutdown -r now"
#elif defined(__SVR4)
# define HALT_CMD "/usr/sbin/halt"

View file

@ -1,5 +1,5 @@
--- kioslave/media/mediamanager/fstabbackend.cpp Mon May 22 20:12:42 2006
+++ kioslave/media/mediamanager/fstabbackend.cpp Fri Mar 17 11:17:33 2006
--- kioslave/media/mediamanager/fstabbackend.cpp 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.cpp 2006/06/14 09:11:46 551306
@@ -144,7 +144,7 @@
void FstabBackend::handleMtabChange(bool allowNotification)
@ -9,26 +9,46 @@
KMountPoint::List mtab = KMountPoint::currentMountPoints();
KMountPoint::List::iterator it = mtab.begin();
@@ -158,14 +158,6 @@
if ( ::inExclusionPattern(*it, m_networkSharesOnly) ) continue;
- /* Did we know this already before ? If yes, then
- nothing has changed, do not stat the mount point. Avoids
- hang if network shares are stalling */
- QString mtabEntry = dev + "*" + mp + "*" + fs;
@@ -162,18 +162,19 @@
nothing has changed, do not stat the mount point. Avoids
hang if network shares are stalling */
QString mtabEntry = dev + "*" + mp + "*" + fs;
- bool isOldEntry = m_mtabEntries.contains(mtabEntry);
- new_mtabEntries+=mtabEntry;
- if (isOldEntry) continue;
-
+ if(m_mtabEntries.contains(mtabEntry)) {
+ new_mtabIds += m_mtabEntries[mtabEntry];
+ continue;
+ }
QString id = generateId(dev, mp);
new_mtabIds+=id;
+ m_mtabEntries[mtabEntry] = id;
@@ -226,7 +218,6 @@
if ( !m_mtabIds.contains(id) && m_fstabIds.contains(id) )
{
QString mime, icon, label;
guess(dev, mp, fs, true, mime, icon, label);
-
m_mediaList.changeMediumState(id, true, false,
mime, icon, label);
}
@@ -211,6 +212,10 @@
QString mp = medium->mountPoint();
QString fs = medium->fsType();
+
+ QString mtabEntry = dev + "*" + mp + "*" + fs;
+ m_mtabEntries.remove(mtabEntry);
+
QString mime, icon, label;
guess(dev, mp, fs, false, mime, icon, label);
@@ -226,7 +231,6 @@
}
m_mtabIds = new_mtabIds;
- m_mtabEntries = new_mtabEntries;
}
void FstabBackend::handleFstabChange(bool allowNotification)
void FstabBackend::handleFstabChange(bool allowNotification)

View file

@ -0,0 +1,19 @@
--- kioslave/media/mediamanager/fstabbackend.h 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.h 2006/06/14 09:11:46 551306
@@ -23,6 +23,7 @@
#include <qobject.h>
#include <qstringlist.h>
+#include <qmap.h>
#ifdef Q_OS_FREEBSD
#include <qtimer.h>
@@ -53,7 +54,7 @@
bool m_networkSharesOnly;
QStringList m_mtabIds;
- QStringList m_mtabEntries;
+ QMap<QString, QString> m_mtabEntries;
QStringList m_fstabIds;
#ifdef Q_OS_FREEBSD
QTimer m_mtabTimer;

View file

@ -0,0 +1,11 @@
--- kpager/windowdrag.cpp 2006/05/23 12:51:36 544025
+++ kpager/windowdrag.cpp 2006/06/05 19:55:59 548525
@@ -31,7 +31,7 @@
QString tmp;
tmp.sprintf("%d %d %d %d", static_cast<int>(w), deltax, deltay, origdesk);
QByteArray data(tmp.length()+1);
- data.assign(tmp.latin1(),tmp.length()+1);
+ data.duplicate(tmp.latin1(),tmp.length()+1);
setEncodedData(data);
}

View file

@ -0,0 +1,21 @@
Index: kdm/backend/client.c
===================================================================
--- kdm/backend/client.c (revision 547560)
+++ kdm/backend/client.c (working copy)
@@ -1537,16 +1542,6 @@ ReadDmrc()
if (!StrApp( &fname, p->pw_dir, "/.dmrc", (char *)0 ))
return GE_Error;
- if ((curdmrc = iniLoad( fname ))) {
- free( fname );
- return GE_Ok;
- }
-
- if (errno != EACCES) {
- free( fname );
- return GE_NoFile;
- }
-
if (pipe( pfd ))
return GE_Error;
if ((pid = Fork()) < 0) {

View file

@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src

View file

@ -0,0 +1,11 @@
--- kdm/config.def.orig Wed Jun 14 17:51:42 2006
+++ kdm/config.def Wed Jun 14 17:51:57 2006
@@ -36,7 +36,7 @@
# define HALT_CMD "/usr/sbin/shutdown -h now"
# define REBOOT_CMD "/usr/sbin/shutdown -r now"
#elif defined(BSD)
-# define HALT_CMD "/sbin/shutdown -h now"
+# define HALT_CMD "/sbin/shutdown -p now"
# define REBOOT_CMD "/sbin/shutdown -r now"
#elif defined(__SVR4)
# define HALT_CMD "/usr/sbin/halt"

View file

@ -1,5 +1,5 @@
--- kioslave/media/mediamanager/fstabbackend.cpp Mon May 22 20:12:42 2006
+++ kioslave/media/mediamanager/fstabbackend.cpp Fri Mar 17 11:17:33 2006
--- kioslave/media/mediamanager/fstabbackend.cpp 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.cpp 2006/06/14 09:11:46 551306
@@ -144,7 +144,7 @@
void FstabBackend::handleMtabChange(bool allowNotification)
@ -9,26 +9,46 @@
KMountPoint::List mtab = KMountPoint::currentMountPoints();
KMountPoint::List::iterator it = mtab.begin();
@@ -158,14 +158,6 @@
if ( ::inExclusionPattern(*it, m_networkSharesOnly) ) continue;
- /* Did we know this already before ? If yes, then
- nothing has changed, do not stat the mount point. Avoids
- hang if network shares are stalling */
- QString mtabEntry = dev + "*" + mp + "*" + fs;
@@ -162,18 +162,19 @@
nothing has changed, do not stat the mount point. Avoids
hang if network shares are stalling */
QString mtabEntry = dev + "*" + mp + "*" + fs;
- bool isOldEntry = m_mtabEntries.contains(mtabEntry);
- new_mtabEntries+=mtabEntry;
- if (isOldEntry) continue;
-
+ if(m_mtabEntries.contains(mtabEntry)) {
+ new_mtabIds += m_mtabEntries[mtabEntry];
+ continue;
+ }
QString id = generateId(dev, mp);
new_mtabIds+=id;
+ m_mtabEntries[mtabEntry] = id;
@@ -226,7 +218,6 @@
if ( !m_mtabIds.contains(id) && m_fstabIds.contains(id) )
{
QString mime, icon, label;
guess(dev, mp, fs, true, mime, icon, label);
-
m_mediaList.changeMediumState(id, true, false,
mime, icon, label);
}
@@ -211,6 +212,10 @@
QString mp = medium->mountPoint();
QString fs = medium->fsType();
+
+ QString mtabEntry = dev + "*" + mp + "*" + fs;
+ m_mtabEntries.remove(mtabEntry);
+
QString mime, icon, label;
guess(dev, mp, fs, false, mime, icon, label);
@@ -226,7 +231,6 @@
}
m_mtabIds = new_mtabIds;
- m_mtabEntries = new_mtabEntries;
}
void FstabBackend::handleFstabChange(bool allowNotification)
void FstabBackend::handleFstabChange(bool allowNotification)

View file

@ -0,0 +1,19 @@
--- kioslave/media/mediamanager/fstabbackend.h 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.h 2006/06/14 09:11:46 551306
@@ -23,6 +23,7 @@
#include <qobject.h>
#include <qstringlist.h>
+#include <qmap.h>
#ifdef Q_OS_FREEBSD
#include <qtimer.h>
@@ -53,7 +54,7 @@
bool m_networkSharesOnly;
QStringList m_mtabIds;
- QStringList m_mtabEntries;
+ QMap<QString, QString> m_mtabEntries;
QStringList m_fstabIds;
#ifdef Q_OS_FREEBSD
QTimer m_mtabTimer;

View file

@ -0,0 +1,11 @@
--- kpager/windowdrag.cpp 2006/05/23 12:51:36 544025
+++ kpager/windowdrag.cpp 2006/06/05 19:55:59 548525
@@ -31,7 +31,7 @@
QString tmp;
tmp.sprintf("%d %d %d %d", static_cast<int>(w), deltax, deltay, origdesk);
QByteArray data(tmp.length()+1);
- data.assign(tmp.latin1(),tmp.length()+1);
+ data.duplicate(tmp.latin1(),tmp.length()+1);
setEncodedData(data);
}

View file

@ -0,0 +1,21 @@
Index: kdm/backend/client.c
===================================================================
--- kdm/backend/client.c (revision 547560)
+++ kdm/backend/client.c (working copy)
@@ -1537,16 +1542,6 @@ ReadDmrc()
if (!StrApp( &fname, p->pw_dir, "/.dmrc", (char *)0 ))
return GE_Error;
- if ((curdmrc = iniLoad( fname ))) {
- free( fname );
- return GE_Ok;
- }
-
- if (errno != EACCES) {
- free( fname );
- return GE_NoFile;
- }
-
if (pipe( pfd ))
return GE_Error;
if ((pid = Fork()) < 0) {

View file

@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src

View file

@ -0,0 +1,11 @@
--- kdm/config.def.orig Wed Jun 14 17:51:42 2006
+++ kdm/config.def Wed Jun 14 17:51:57 2006
@@ -36,7 +36,7 @@
# define HALT_CMD "/usr/sbin/shutdown -h now"
# define REBOOT_CMD "/usr/sbin/shutdown -r now"
#elif defined(BSD)
-# define HALT_CMD "/sbin/shutdown -h now"
+# define HALT_CMD "/sbin/shutdown -p now"
# define REBOOT_CMD "/sbin/shutdown -r now"
#elif defined(__SVR4)
# define HALT_CMD "/usr/sbin/halt"

View file

@ -1,5 +1,5 @@
--- kioslave/media/mediamanager/fstabbackend.cpp Mon May 22 20:12:42 2006
+++ kioslave/media/mediamanager/fstabbackend.cpp Fri Mar 17 11:17:33 2006
--- kioslave/media/mediamanager/fstabbackend.cpp 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.cpp 2006/06/14 09:11:46 551306
@@ -144,7 +144,7 @@
void FstabBackend::handleMtabChange(bool allowNotification)
@ -9,26 +9,46 @@
KMountPoint::List mtab = KMountPoint::currentMountPoints();
KMountPoint::List::iterator it = mtab.begin();
@@ -158,14 +158,6 @@
if ( ::inExclusionPattern(*it, m_networkSharesOnly) ) continue;
- /* Did we know this already before ? If yes, then
- nothing has changed, do not stat the mount point. Avoids
- hang if network shares are stalling */
- QString mtabEntry = dev + "*" + mp + "*" + fs;
@@ -162,18 +162,19 @@
nothing has changed, do not stat the mount point. Avoids
hang if network shares are stalling */
QString mtabEntry = dev + "*" + mp + "*" + fs;
- bool isOldEntry = m_mtabEntries.contains(mtabEntry);
- new_mtabEntries+=mtabEntry;
- if (isOldEntry) continue;
-
+ if(m_mtabEntries.contains(mtabEntry)) {
+ new_mtabIds += m_mtabEntries[mtabEntry];
+ continue;
+ }
QString id = generateId(dev, mp);
new_mtabIds+=id;
+ m_mtabEntries[mtabEntry] = id;
@@ -226,7 +218,6 @@
if ( !m_mtabIds.contains(id) && m_fstabIds.contains(id) )
{
QString mime, icon, label;
guess(dev, mp, fs, true, mime, icon, label);
-
m_mediaList.changeMediumState(id, true, false,
mime, icon, label);
}
@@ -211,6 +212,10 @@
QString mp = medium->mountPoint();
QString fs = medium->fsType();
+
+ QString mtabEntry = dev + "*" + mp + "*" + fs;
+ m_mtabEntries.remove(mtabEntry);
+
QString mime, icon, label;
guess(dev, mp, fs, false, mime, icon, label);
@@ -226,7 +231,6 @@
}
m_mtabIds = new_mtabIds;
- m_mtabEntries = new_mtabEntries;
}
void FstabBackend::handleFstabChange(bool allowNotification)
void FstabBackend::handleFstabChange(bool allowNotification)

View file

@ -0,0 +1,19 @@
--- kioslave/media/mediamanager/fstabbackend.h 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.h 2006/06/14 09:11:46 551306
@@ -23,6 +23,7 @@
#include <qobject.h>
#include <qstringlist.h>
+#include <qmap.h>
#ifdef Q_OS_FREEBSD
#include <qtimer.h>
@@ -53,7 +54,7 @@
bool m_networkSharesOnly;
QStringList m_mtabIds;
- QStringList m_mtabEntries;
+ QMap<QString, QString> m_mtabEntries;
QStringList m_fstabIds;
#ifdef Q_OS_FREEBSD
QTimer m_mtabTimer;

View file

@ -0,0 +1,11 @@
--- kpager/windowdrag.cpp 2006/05/23 12:51:36 544025
+++ kpager/windowdrag.cpp 2006/06/05 19:55:59 548525
@@ -31,7 +31,7 @@
QString tmp;
tmp.sprintf("%d %d %d %d", static_cast<int>(w), deltax, deltay, origdesk);
QByteArray data(tmp.length()+1);
- data.assign(tmp.latin1(),tmp.length()+1);
+ data.duplicate(tmp.latin1(),tmp.length()+1);
setEncodedData(data);
}

View file

@ -0,0 +1,21 @@
Index: kdm/backend/client.c
===================================================================
--- kdm/backend/client.c (revision 547560)
+++ kdm/backend/client.c (working copy)
@@ -1537,16 +1542,6 @@ ReadDmrc()
if (!StrApp( &fname, p->pw_dir, "/.dmrc", (char *)0 ))
return GE_Error;
- if ((curdmrc = iniLoad( fname ))) {
- free( fname );
- return GE_Ok;
- }
-
- if (errno != EACCES) {
- free( fname );
- return GE_NoFile;
- }
-
if (pipe( pfd ))
return GE_Error;
if ((pid = Fork()) < 0) {

View file

@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src

View file

@ -0,0 +1,11 @@
--- kdm/config.def.orig Wed Jun 14 17:51:42 2006
+++ kdm/config.def Wed Jun 14 17:51:57 2006
@@ -36,7 +36,7 @@
# define HALT_CMD "/usr/sbin/shutdown -h now"
# define REBOOT_CMD "/usr/sbin/shutdown -r now"
#elif defined(BSD)
-# define HALT_CMD "/sbin/shutdown -h now"
+# define HALT_CMD "/sbin/shutdown -p now"
# define REBOOT_CMD "/sbin/shutdown -r now"
#elif defined(__SVR4)
# define HALT_CMD "/usr/sbin/halt"

View file

@ -1,5 +1,5 @@
--- kioslave/media/mediamanager/fstabbackend.cpp Mon May 22 20:12:42 2006
+++ kioslave/media/mediamanager/fstabbackend.cpp Fri Mar 17 11:17:33 2006
--- kioslave/media/mediamanager/fstabbackend.cpp 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.cpp 2006/06/14 09:11:46 551306
@@ -144,7 +144,7 @@
void FstabBackend::handleMtabChange(bool allowNotification)
@ -9,26 +9,46 @@
KMountPoint::List mtab = KMountPoint::currentMountPoints();
KMountPoint::List::iterator it = mtab.begin();
@@ -158,14 +158,6 @@
if ( ::inExclusionPattern(*it, m_networkSharesOnly) ) continue;
- /* Did we know this already before ? If yes, then
- nothing has changed, do not stat the mount point. Avoids
- hang if network shares are stalling */
- QString mtabEntry = dev + "*" + mp + "*" + fs;
@@ -162,18 +162,19 @@
nothing has changed, do not stat the mount point. Avoids
hang if network shares are stalling */
QString mtabEntry = dev + "*" + mp + "*" + fs;
- bool isOldEntry = m_mtabEntries.contains(mtabEntry);
- new_mtabEntries+=mtabEntry;
- if (isOldEntry) continue;
-
+ if(m_mtabEntries.contains(mtabEntry)) {
+ new_mtabIds += m_mtabEntries[mtabEntry];
+ continue;
+ }
QString id = generateId(dev, mp);
new_mtabIds+=id;
+ m_mtabEntries[mtabEntry] = id;
@@ -226,7 +218,6 @@
if ( !m_mtabIds.contains(id) && m_fstabIds.contains(id) )
{
QString mime, icon, label;
guess(dev, mp, fs, true, mime, icon, label);
-
m_mediaList.changeMediumState(id, true, false,
mime, icon, label);
}
@@ -211,6 +212,10 @@
QString mp = medium->mountPoint();
QString fs = medium->fsType();
+
+ QString mtabEntry = dev + "*" + mp + "*" + fs;
+ m_mtabEntries.remove(mtabEntry);
+
QString mime, icon, label;
guess(dev, mp, fs, false, mime, icon, label);
@@ -226,7 +231,6 @@
}
m_mtabIds = new_mtabIds;
- m_mtabEntries = new_mtabEntries;
}
void FstabBackend::handleFstabChange(bool allowNotification)
void FstabBackend::handleFstabChange(bool allowNotification)

View file

@ -0,0 +1,19 @@
--- kioslave/media/mediamanager/fstabbackend.h 2006/03/23 09:19:38 521680
+++ kioslave/media/mediamanager/fstabbackend.h 2006/06/14 09:11:46 551306
@@ -23,6 +23,7 @@
#include <qobject.h>
#include <qstringlist.h>
+#include <qmap.h>
#ifdef Q_OS_FREEBSD
#include <qtimer.h>
@@ -53,7 +54,7 @@
bool m_networkSharesOnly;
QStringList m_mtabIds;
- QStringList m_mtabEntries;
+ QMap<QString, QString> m_mtabEntries;
QStringList m_fstabIds;
#ifdef Q_OS_FREEBSD
QTimer m_mtabTimer;

View file

@ -0,0 +1,11 @@
--- kpager/windowdrag.cpp 2006/05/23 12:51:36 544025
+++ kpager/windowdrag.cpp 2006/06/05 19:55:59 548525
@@ -31,7 +31,7 @@
QString tmp;
tmp.sprintf("%d %d %d %d", static_cast<int>(w), deltax, deltay, origdesk);
QByteArray data(tmp.length()+1);
- data.assign(tmp.latin1(),tmp.length()+1);
+ data.duplicate(tmp.latin1(),tmp.length()+1);
setEncodedData(data);
}

View file

@ -0,0 +1,21 @@
Index: kdm/backend/client.c
===================================================================
--- kdm/backend/client.c (revision 547560)
+++ kdm/backend/client.c (working copy)
@@ -1537,16 +1542,6 @@ ReadDmrc()
if (!StrApp( &fname, p->pw_dir, "/.dmrc", (char *)0 ))
return GE_Error;
- if ((curdmrc = iniLoad( fname ))) {
- free( fname );
- return GE_Ok;
- }
-
- if (errno != EACCES) {
- free( fname );
- return GE_NoFile;
- }
-
if (pipe( pfd ))
return GE_Error;
if ((pid = Fork()) < 0) {