Почему функция crypt () не имеет утечки памяти? - PullRequest
5 голосов
/ 27 января 2010

С crypt (3) - справочная страница Linux :

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

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

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

Ответы [ 2 ]

9 голосов
/ 27 января 2010

со страницы руководства:

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

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

3 голосов
/ 27 января 2010

со страницы, на которую вы ссылаетесь:

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

...