Hi Rich, > Date: 2026-11-12 09:45:53-0500 > From: Rich Felker > [...] > > --- HEAD:man/man3/crypt.3 > > +++ ./man/man3/crypt.3 > > @@ -152,6 +152,19 @@ NOTES > > than 1000, 999999999 if xxx is greater than 999999999, and > > is equal to xxx otherwise. > > > > +EXAMPLES > > + When comparing a password against an existing hash, that > > + hash (and no other) must be passed as salt. If and only > > + if salt compares equal (see streq(3)) to the returned > > + string, the password matches the existing hash specified > > + by salt. > > + > > + if (streq(H, crypt(P, H))) { > > + // good password > > + } else { > > + // bad password > > + } > > + > > SEE ALSO > > login(1), passwd(1), encrypt(3), getpass(3), passwd(5) > > Missing null return check. Ouch! Thanks! --- HEAD:man/man3/crypt.3 +++ ./man/man3/crypt.3 @@ -152,6 +152,20 @@ NOTES than 1000, 999999999 if xxx is greater than 999999999, and is equal to xxx otherwise. +EXAMPLES + When comparing a password against an existing hash, that + hash (and no other) must be passed as salt. If and only + if salt compares equal (see streq(3)) to the returned + string, the password matches the existing hash specified + by salt. + + const char *h = crypt(P, H); + if (h != NULL && streq(h, H)) { + // good password + } else { + // bad password + } + SEE ALSO login(1), passwd(1), encrypt(3), getpass(3), passwd(5) Cheers, Alex --