The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"OpenNews: postfix + pam патч"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "postfix + pam патч" +/
Сообщение от poige (?), 24-Апр-03, 18:36 
>>причем, речь идет о memory leak, который "просит" чтобы его пофиксили.
>
>Спасибо за комментарий .)
>int converse(int n, const struct pam_message **msg,

>    resp[i]->resp = strdup(msg[i]->msg); /* FIXME */

>Утечки здесь нет, т.к. буфер, в который производится копирование (resp) инициализируется PAM,
>им же он и освобождается. Т.е. это - проблемы негров .)

Я не уверен на все 100 %, что называется, так как, в текстах PAM-модулей часто встречается такая работа с данными (strdup()), а детального описания интерфейса (API), в котором было бы написано кто, что и как выделяет/освобождает, я не нашел. Однако, там же (в текстах) встречается и проверка на то, что память действительно выделена, причем, если этого не произошло, то выполняется "откат", освобождая все, что успели получить до этого. В твоем патче такого нет:

+    for (i = 0; i < n; ++i) {
+        resp[i]->resp_retcode = 0;
+        resp[i]->resp = strdup(msg[i]->msg); // FIXME
+    }
+
+    return (PAM_SUCCESS);

Если ты брал готовый (чужой) кусок кода, то следовало обратить внимание на его готовность к "реальной жизни", ибо он там *специально* отмечен комментарием.

/poige
--
http://www.morning.ru/~poige/

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
OpenNews: postfix + pam патч, opennews, 23-Апр-03, 21:56  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру