Question

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.

Was it helpful?

Solution

From the man page:

The return value points to static data whose content is overwritten by each call.

So this means it's not dynamically allocated - it's a single static allocation (just like a global variable).

OTHER TIPS

From the page you linked:

The returned value points to the encrypted password, a series of 13 printable ASCII characters (the first two characters represent the salt itself). The return value points to static data whose content is overwritten by each call.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top