This leak is really needed (and if it is I really like it!).
I studied the code and didn't get understand how this comment like situation can be happening.
I Mixxx releases this pointer at the last one it shouldn't cause any trouble. But this commit can be ignored
just slowering the noise in valgrind and as comment says it's 11 bytes per time so this
doesn't fill up memory (just looks awful)

    // Need to strdup the string because EngineChannel will save the pointer,
    // but we might get deleted before the EngineChannel. TODO(XXX)
    // pSafeGroupName is leaked. It's like 5 bytes so whatever.
I totally agree about this comment but again just cleaning valgrind to see what are the real
leaks and what are just 'needed' ones.

        // We don't know if something downstream expects the string to persist,
        // so dupe it (probably leaking it).
Leaking allocation of object. Probably shouldn't do that but just cleaning valgrind.

==5934== 284 (48 direct, 236 indirect) bytes in 1 blocks are definitely lost in loss record 1,336 of 1,528
==5934==    at 0x4C2BCA7: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==5934==    by 0x7B6DB0: EngineMicrophone::EngineMicrophone(char const*, EffectsManager*) (enginemicrophone.cpp:33)
==5934==    by 0x953DEC: MixxxMainWindow::MixxxMainWindow(QApplication*, CmdlineArgs const&) (mixxx.cpp:175)
==5934==    by 0x470772: main (main.cpp:338)