From crypt(3) - Linux man page:
char *crypt(const char *key, const char *salt);
Return Value:
A pointer to the encrypted password is returned. On error, NULL
is returned.
Since the return value is unknown unless key and salt is given, this should be dynamically allocated memory, but valgrind doesn't agree.