Утечка памяти при использовании QProcess и SSH

120
02 августа 2021, 00:30

Пишу ПО под Linux которое подключается к аналогичным машинам и выполняет простенькие команды а-ля cat /proc/meminfo и подобные выводящие инфу о состоянии ОС.

При длительной работе моего ПО на стороне подконтрольных машин возникает постепенное увеличение потребления ОЗУ. Методом включения и выключения моего ПО и замеров потребления ОЗУ средствами гипервизора выяснил, что виновником служит именно мое ПО.

Странно то, что утечка памяти происходит именно на других машинах. Поэтому киваю больше на участок кода, который отвечает за подключение по SSH. В связи с этим правильно ли написан код делающий запрос по SSH? Пример запроса ниже

qDebug() << "GetARMStatus " << ip;
m->lock();
int result = 0;
QString command = "ssh";
QStringList arguments;
arguments << "user@" + ip << " ps aux | grep openvpn; ";
QProcess *myProcess = new QProcess();
myProcess->start(command, arguments);
myProcess->waitForFinished();
myProcess->kill();
QString out = myProcess->readAllStandardOutput();
QString err = myProcess->readAllStandardError();
if((err.contains("No route to host")) || (out.contains("No route to host"))) {
    result = 1;
}
if(out.contains("openvpn --daemon ovpn-client --status")) {
    result = 0;
} else {
    result = 1;
}
qDebug() << "GetARMStatus " << result << " " << ip;
delete myProcess;
m->unlock();
return result;
Answer 1

1) наследовать указатели от родителя

QProcess *myProcess = new QProcess(parent);

2) использовать умные указатели

QSharedPointer<QProcess> p = QSharedPointer<QProcess>(new QProcess);

3) не использовать указатели там где они не нужны

READ ALSO
Как отключить оптимизацию в Code Blocks

Как отключить оптимизацию в Code Blocks

Подскажите пожалуйста, как отключить оптимизацию компилятора в среде Code::Blocks?

163
Совместная работа С++ при NodeJS

Совместная работа С++ при NodeJS

Достаточно давно грезил подобными мыслями, и вот настала пора заняться этимИзложу вопрос как серию вопросов по совместной работе C++ при NodeJS

371
jquery, datetimepicker, AM PM format отнимает время

jquery, datetimepicker, AM PM format отнимает время

У меня есть данный код

184