https://bugs.kde.org/show_bug.cgi?id=400499

--- Comment #5 from Matt Fagnani <matthew.fagn...@utoronto.ca> ---
Those ksysguard crashes with segmentation faults at operator==(QString const&,
QString const&) (s1=..., s2=...) at tools/qstring.cpp:3153 seem to involve the
line if (s1.d->size != s2.d->size) in the function 

/*!
  \relates QString
  Returns \c true if string \a s1 is equal to string \a s2; otherwise
  returns \c false.

  The comparison is based exclusively on the numeric Unicode values of
  the characters and is very fast, but is not what a human would
  expect. Consider sorting user-interface strings with
  localeAwareCompare().
*/
bool operator==(const QString &s1, const QString &s2) Q_DECL_NOTHROW
{
    if (s1.d->size != s2.d->size)
        return false;

    return qt_compare_strings(s1, s2, Qt::CaseSensitive) == 0;
}

https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/tools/qstring.cpp

The QStrings s1 or s2 might be null due to their memory being freed or some
other reason. s1.d->size or s2.d->size might be null pointer dereferences which
lead to the segmentation faults. Checking if s1 or s2 are null before the line
if (s1.d->size != s2.d->size) might avoid the crashes.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to