2010-01-27 1 views
4

От crypt(3) - Linux man page:Почему функция crypt() не имеет утечки памяти?

char *crypt(const char *key, const char *salt); 

Возвращаемое значение: Указатель на зашифрованный пароль возвращается. При ошибке возвращается NULL.

Поскольку возвращаемое значение неизвестно, если не заданы ключ и соль, это должно быть динамически распределенная память, но valgrind не согласен.

ответ

8

От человека странице:

Возвращаемое значение указывает на статические данные , содержимое перезаписывается при каждом вызове.

Таким образом, это означает, что он не динамически выделяется - это одно статическое распределение (как глобальная переменная).

3

На странице вы связаны:

Возвращается значение указывает на зашифрованный пароль, серия из 13 печатных символов ASCII (первые два символа представляют саму соль). Возвращаемое значение указывает на статические данные, содержимое которых перезаписывается каждым вызовом.