Bug 172818

Summary: protocol process crashed when opening a share containing folder names on a native language (russian)
Product: [Unmaintained] kio Reporter: Artem Bodrin <gemmed>
Component: smbAssignee: Unassigned bugs mailing-list <unassigned-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: andresbajotierra, yurchor
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Artem Bodrin 2008-10-14 20:06:36 UTC
Version:            (using KDE 4.1.2)
OS:                Linux
Installed from:    Compiled From Sources

kio_smb process crashes when opening a share, containing folders named with native language (russian in my case), or if a share itself is in russian. System locale is ru_RU.UTF-8, but I guess it's doesn't matter. An error is rised in internal data model for file/folder list when updating a cache. 
There is a cure:
source file kio_smb_internal.cpp; member void SMBUrl::updateCache():
you have to replace all four converts toLatin1() for toLocal8Bit().

So, the source
            if (KUrl::hasUser()) {
            surl += QUrl::fromPercentEncoding(KUrl::user().toLatin1());
            if (KUrl::hasPass()) {
                surl += ':' + QUrl::fromPercentEncoding(KUrl::pass().toLatin1());
            }
            surl += '@';
        }
        surl += QUrl::fromPercentEncoding(KUrl::host().toUpper().toLatin1());
        surl += QUrl::fromPercentEncoding(KUrl::path().toLatin1());

have to become:
if (KUrl::hasUser()) {
            surl += QUrl::fromPercentEncoding(KUrl::user().toLocal8Bit());
            if (KUrl::hasPass()) {
                surl += ':' + QUrl::fromPercentEncoding(KUrl::pass().toLocal8Bit());
            }
            surl += '@';
        }
        surl += QUrl::fromPercentEncoding(KUrl::host().toUpper().toLocal8Bit());
        surl += QUrl::fromPercentEncoding(KUrl::path().toLocal8Bit());

that's it...
I've done this for myself since release of kde 4.0.0 and tired a bit 8-))...
Comment 1 Yuri Chornoivan 2008-12-02 14:47:25 UTC
This bug was fixed in trunk. See commit 844753 by gamaral. But branch stands still broken.
Comment 2 Dario Andres 2009-05-15 03:03:58 UTC
And now branch is KDE4.2 already. Also, a lot of encoding bugs on SMB were fixed on KDE4.2 
I'm marking this as FIXED.
Thanks