Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-122102

mprotect repeatedly fails and triggers SELinux AVC alerts

    XMLWordPrintable

Details

    • c4d3c0cc1 (dev), 912af1e8b (6.8)

    Description

      I'm a developer working on Jami. I recently tested the app on a fresh install of Alma Linux 9.3, which has SELinux enabled by default, and saw the following error appear repeatedly in the terminal (over a thousand times in less than a minute of using the app):

      mprotect failed in ExecutableAllocator::makeExecutable: Permission denied

      This triggers a large number of SELinux 'AVC denial' alerts:

      SELinux is preventing /usr/bin/jami from execmod access on the file /memfd:JITCode:QtQml (deleted).
      

      This problem occurs both on Qt 6.5.3 (the version we use in our current stable release) and Qt 6.6.1 (the version we are in the process of migrating to).

      Backtrace:

      Thread 1 "jami" hit Breakpoint 1, __GI_perror (s=0x7ffff5e986f0 "mprotect failed in ExecutableAllocator::makeExecutable") at perror.c:48
      48 {
      (gdb) bt
      #0 __GI_perror (s=0x7ffff5e986f0 "mprotect failed in ExecutableAllocator::makeExecutable") at perror.c:48
      #1 0x00007ffff5b02214 in JSC::Yarr::YarrGenerator(JSC::Yarr::YarrJITCompileMode)1::compile() () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #2 0x00007ffff5ae94d1 in JSC::Yarr::jitCompile(JSC::Yarr::YarrPattern&, JSC::Yarr::YarrCharSize, JSC::VM*, JSC::Yarr::YarrCodeBlock&, JSC::Yarr::YarrJITCompileMode) ()
      from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #3 0x00007ffff5c3b386 in QV4::Heap::RegExp::init(QV4::ExecutionEngine*, QString const&, unsigned int) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #4 0x00007ffff5c3bc19 in QV4::RegExp::create(QV4::ExecutionEngine*, QString const&, unsigned int) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #5 0x00007ffff5bd36b1 in QV4::ExecutableCompilationUnit::linkToEngine(QV4::ExecutionEngine*) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #6 0x00007ffff5d756c5 in QQmlObjectCreator::init(QQmlRefPointer) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #7 0x00007ffff5d75c0b in QQmlObjectCreator::QQmlObjectCreator(QQmlRefPointer, QQmlRefPointerQV4::ExecutableCompilationUnit const&, QQmlObjectCreatorSharedState*, bool) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #8 0x00007ffff5d7d5bc in QQmlObjectCreator::createInstance(int, QObject*, bool) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #9 0x00007ffff5d7f419 in QQmlObjectCreator::setPropertyBinding(QQmlPropertyData const*, QV4::CompiledData::Binding const*) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #10 0x00007ffff5d8120e in QQmlObjectCreator::setupBindings(QFlagsQQmlObjectCreator::BindingMode) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #11 0x00007ffff5d7aedc in QQmlObjectCreator::populateInstance(int, QObject*, QObject*, QQmlPropertyData const*, QV4::CompiledData::Binding const*) ()
      from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #12 0x00007ffff5d7cb68 in QQmlObjectCreator::createInstance(int, QObject*, bool) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #13 0x00007ffff5d7e493 in QQmlObjectCreator::create(int, QObject*, QQmlInstantiationInterrupt*, int) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #14 0x00007ffff5ce6d41 in QQmlComponentPrivate::beginCreate(QQmlRefPointer) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #15 0x00007ffff5ce7309 in QQmlComponent::beginCreate(QQmlContext*) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #16 0x00007ffff5ce81e9 in QQmlComponentPrivate::createWithProperties(QObject*, QMap<QString, QVariant> const&, QQmlContext*, QQmlComponentPrivate::CreateBehavior) ()
      from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #17 0x00007ffff5ce84c9 in QQmlComponent::create(QQmlContext*) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #18 0x00007ffff5cc6263 in QQmlApplicationEnginePrivate::finishLoad(QQmlComponent*) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #19 0x00007ffff5cc67bc in QQmlApplicationEngine::load(QUrl const&) () from /usr/lib64/qt-jami/lib/libQt6Qml.so.6
      #20 0x00000000004c1dea in MainApplication::initQmlLayer() ()
      #21 0x00000000004c5e0f in MainApplication::init() ()
      #22 0x0000000000477dca in main ()
      

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              ulherman Ulf Hermann
              fsimon François-Simon Fauteux-Chapleau
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes