[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kio/kio
From:       David Faure <faure () kde ! org>
Date:       2009-05-23 2:07:45
Message-ID: 1243044465.636770.824.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 971637 by dfaure:

- Fix porting bug (oops): UDS_LINK_DEST was meant instead of UDS_STRING. This made \
the recursive chmod'ing fail when a symlink was present (as tested indirectly by \
                testtrash in kdebase)
- Remove setgid and other special flags like S_ISVTX (/tmp) in the chmod permission \
calculations.


 M  +8 -6      chmodjob.cpp  


--- trunk/KDE/kdelibs/kio/kio/chmodjob.cpp #971636:971637
@@ -123,12 +123,13 @@
             ChmodInfo info;
             info.url = item.url();
             // This is a toplevel file, we apply changes directly (no +X emulation \
                here)
-            info.permissions = ( m_permissions & m_mask ) | ( item.permissions() & \
                ~m_mask );
-            /*kDebug(7007) << "\n current permissions=" << \
QString::number(item->permissions(),8) +            const mode_t permissions = \
item.permissions() & 0777; // get rid of "set gid" and other special flags +          \
info.permissions = ( m_permissions & m_mask ) | ( permissions & ~m_mask ); +          \
/*kDebug(7007) << "toplevel url:" << info.url << "\n current permissions=" << \
                QString::number(permissions,8)
                           << "\n wanted permission=" << \
QString::number(m_permissions,8)  << "\n with mask=" << QString::number(m_mask,8)
                           << "\n with ~mask (mask bits we keep) =" << \
                QString::number((uint)~m_mask,8)
-                          << "\n bits we keep =" << \
QString::number(item->permissions() & ~m_mask,8) +                          << "\n \
                bits we keep =" << QString::number(permissions & ~m_mask,8)
                           << "\n new permissions = " << \
QString::number(info.permissions,8);*/  m_infos.prepend( info );
             //kDebug(7007) << "processList : Adding info for " << info.url;
@@ -158,11 +159,12 @@
     KIO::UDSEntryList::ConstIterator end = list.end();
     for (; it != end; ++it) {
         const KIO::UDSEntry& entry = *it;
-        const bool isLink = !entry.stringValue( KIO::UDSEntry::UDS_STRING \
).isEmpty(); +        const bool isLink = !entry.stringValue( \
                KIO::UDSEntry::UDS_LINK_DEST ).isEmpty();
         const QString relativePath = entry.stringValue( KIO::UDSEntry::UDS_NAME );
         if ( !isLink && relativePath != ".." )
         {
-            const mode_t permissions = entry.numberValue( KIO::UDSEntry::UDS_ACCESS \
); +            const mode_t permissions = entry.numberValue( \
KIO::UDSEntry::UDS_ACCESS ) +                                       & 0777; // get \
rid of "set gid" and other special flags  
             ChmodInfo info;
             info.url = m_lstItems.first().url(); // base directory
@@ -184,7 +186,7 @@
                 }
             }
             info.permissions = ( m_permissions & mask ) | ( permissions & ~mask );
-            /*kDebug(7007) << "\n current permissions=" << \
QString::number(permissions,8) +            /*kDebug(7007) << info.url << "\n current \
                permissions=" << QString::number(permissions,8)
                           << "\n wanted permission=" << \
QString::number(m_permissions,8)  << "\n with mask=" << QString::number(mask,8)
                           << "\n with ~mask (mask bits we keep) =" << \
QString::number((uint)~mask,8)


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic