Package: drkonqi
Version: 5.27.8-1
Severity: normal

drkonqi-coredump-processor crashes if too few command line arguments are given:


#0  std::__atomic_base<int>::load (__m=std::memory_order_relaxed,
this=0x0) at /usr/include/c++/13/bits/atomic_base.h:503
#1  QAtomicOps<int>::loadRelaxed<int> (_q_value=...) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h:239
#2  QBasicAtomicInteger<int>::loadRelaxed (this=0x0) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:107
#3  QtPrivate::RefCount::ref (this=0x0) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:55
#4  QString::QString (other=..., this=0x7ffc795b6d50) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:1094
#5  main (argc=<optimized out>, argv=<optimized out>) at
./src/coredump/processor/main.cpp:45


The code in question only asserts (which seems to be disabled) that 2
arguments are given:
(https://sources.debian.org/src/drkonqi/5.27.8-1/src/coredump/processor/main.cpp/#L37)


Q_ASSERT(args.size() == 2);
const QString &bootId = args.at(0);
const QString &instance = args.at(1);

auto expectedJournal = owning_ptr_call<sd_journal>(sd_journal_open,
SD_JOURNAL_LOCAL_ONLY);
Q_ASSERT(expectedJournal.ret == 0);
Q_ASSERT(expectedJournal.value);

CoredumpWatcher watcher(std::move(expectedJournal.value), bootId,
instance, nullptr);

Reply via email to