← Back to team overview

touch-packages team mailing list archive

[Bug 1469611] Re: QQuickPixmapReader::asyncResponseFinished segfaults if a QQuickAsyncImageProvider returns an error response

 

** Changed in: qtdeclarative-opensource-src (Ubuntu)
       Status: Triaged => In Progress

** Also affects: qtdeclarative-opensource-src (Ubuntu RTM)
   Importance: Undecided
       Status: New

** Changed in: qtdeclarative-opensource-src (Ubuntu RTM)
     Assignee: (unassigned) => Timo Jyrinki (timo-jyrinki)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtdeclarative-opensource-
src in Ubuntu.
https://bugs.launchpad.net/bugs/1469611

Title:
  QQuickPixmapReader::asyncResponseFinished segfaults if a
  QQuickAsyncImageProvider returns an error response

Status in qtdeclarative-opensource-src package in Ubuntu:
  In Progress
Status in qtdeclarative-opensource-src package in Ubuntu RTM:
  New

Bug description:
  While working on the new thumbnailer, we've been using the new
  QQuickAsyncImageProvider API.  The API allows us to report errors by
  overriding the errorString() method on QQuickImageResponse to return a
  non-empty string.  However, if I do so the application crashes.

  Loading up the symbols to get a stack trace shows this to be a bug in
  the logic of QQuickPixmapReader::asyncResponseFinished:

          QQuickTextureFactory *t = 0;
          QQuickPixmapReply::ReadError error = QQuickPixmapReply::NoError;
          QString errorString;
          QSize readSize;
          if (!response->errorString().isEmpty()) {
              error = QQuickPixmapReply::Loading;
              errorString = response->errorString();
          } else {
              t = response->textureFactory();
         }
          mutex.lock();
          if (!cancelled.contains(job))
              job->postReply(error, errorString, t->textureSize(), t);
          mutex.unlock();

  If errorString() is not empty, then t will still be NULL.  It is then
  dereferenced to call t->textureSize() resulting in a segfault.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10
  Package: libqt5quick5 5.4.2-1ubuntu1
  ProcVersionSignature: Ubuntu 3.19.0-20.20-generic 3.19.8
  Uname: Linux 3.19.0-20-generic x86_64
  ApportVersion: 2.17.3-0ubuntu4
  Architecture: amd64
  CurrentDesktop: Unity
  Date: Mon Jun 29 14:53:49 2015
  InstallationDate: Installed on 2013-10-29 (607 days ago)
  InstallationMedia: Ubuntu 13.10 "Saucy Salamander" - Release amd64 (20131016.1)
  SourcePackage: qtdeclarative-opensource-src
  UpgradeStatus: Upgraded to wily on 2015-06-13 (15 days ago)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qtdeclarative-opensource-src/+bug/1469611/+subscriptions


References