xintrea / mytetra_dev

MyTetra - smart crossplatform manager for information collecting / MyTetra - кроссплатформенный менеджер накопления информации / Официальная страница:
http://webhamster.ru/site/page/index/articles/projectcode/105
254 stars 55 forks source link

Fix potential memory leak. #45

Closed retmas closed 6 years ago

retmas commented 7 years ago

Освобождение памяти при потенциальном возврате из функции. Стоило бы переписать реализацию класса без использования выделения памяти в стиле С и без использования raw С массивов/указателей. Но это потянет на мини-рефакторинг. Без заведомого одобрямса от xintrea, подобные телодвижения - пустая трата времени и сил. Ибо улетит коммит в трубу(по крайней мере в этой репе). Другой вариант (без такого рефакторинга) - RAII

ymuv commented 7 years ago

Можно написать проще, выкидывается купа проверок:

QByteArray result(key_len, 0);
int calculate_result=Pbkdf2_calculate(pass, 
                                       pass.length(), 
                                       salt,
                                       salt.length(),
                                       key.data(),
....
 if(calculate_result==-1)
{
return QByteArray();
}
return result;
}