Bug in kdelibs4support/kio/kfiledialog
Christoph Feck
cfeck at kde.org
Wed Jun 8 01:28:40 UTC 2016
On Wednesday 08 June 2016 00:58:33 Jonathan Schultz wrote:
> Sorry for cross-posting, but kde-frameworks-devel seems to be a
> more active list than kde-devel where I previously raised this
> issue.
>
> I'd like to file a bug report for kdelibs4support/kio/kfiledialog
> but don't seem to be able to find a relevant category in KDE
> Bugzilla. If someone can point me in the right direction I'll go
https://bugs.kde.org/component-report.cgi?product=frameworks-kdelibs4support
> ahead with that. In the meantime, here is a description of the
> bug:
>
> In short, some functions do not check whether d->native is non-null
> before calling a method belonging to the file chooser widget d->w.
> However, d->w is only set if d->native is null, so if this is not
> the case then the application crashes. This issue manifested on a
> windows build of kf5/okular by the application crashing in
> KFileDialog::setMimeFilter when the user attempts to opena file.
> However, I see that there are another half-dozen or so functions
> that have the same problem.
>
> In any case I made the following patch and confirmed that with it
> okular
>
> can open files without crashing:
> > --- a/src/kio/kfiledialog.cpp
> > +++ b/src/kio/kfiledialog.cpp
> > @@ -326,8 +326,6 @@ QString KFileDialog::currentFilter() const
> >
> > void KFileDialog::setMimeFilter(const QStringList &mimeTypes,
> >
> > const QString &defaultType)
> >
> > {
> >
> > - d->w->setMimeFilter(mimeTypes, defaultType);
> > -
> >
> > if (d->native) {
> >
> > QString allExtensions;
> > QStringList filters = mime2KdeFilter(mimeTypes,
> > &allExtensions);
> >
> > @@ -336,6 +334,8 @@ void KFileDialog::setMimeFilter(const
> > QStringList
>
> &mimeTypes,
>
> > }
> > d->native->filter = filters.join(QLatin1String("\n"));
> >
> > }
> >
> > + else
> > + d->w->setMimeFilter(mimeTypes, defaultType);
> >
> > }
>
> Presumably all the other functions that do not currently test
> d->native should be made to do so.
The patch looks good, but the formatting should be
if (d->native) {
...
d->native->filter =
} else {
d->w->setMimeFilter(...
}
I suggest to add it to https://git.reviewboard.kde.org/ so it does not
get lost. Alternatively, add it to the bug report.
> Cheers,
> Jonathan
> _______________________________________________
> Kde-frameworks-devel mailing list
> Kde-frameworks-devel at kde.org
> https://mail.kde.org/mailman/listinfo/kde-frameworks-devel
More information about the Kde-frameworks-devel
mailing list