Module Name: src Committed By: christos Date: Tue Dec 27 23:34:13 UTC 2011
Modified Files: src/lib/libcrypt: crypt.c Log Message: wrap crypt() to a function that returns *0 and *1 on error. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/lib/libcrypt/crypt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libcrypt/crypt.c diff -u src/lib/libcrypt/crypt.c:1.31 src/lib/libcrypt/crypt.c:1.32 --- src/lib/libcrypt/crypt.c:1.31 Mon Dec 26 20:20:45 2011 +++ src/lib/libcrypt/crypt.c Tue Dec 27 18:34:13 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: crypt.c,v 1.31 2011/12/27 01:20:45 christos Exp $ */ +/* $NetBSD: crypt.c,v 1.32 2011/12/27 23:34:13 christos Exp $ */ /* * Copyright (c) 1989, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)crypt.c 8.1.1.1 (Berkeley) 8/18/93"; #else -__RCSID("$NetBSD: crypt.c,v 1.31 2011/12/27 01:20:45 christos Exp $"); +__RCSID("$NetBSD: crypt.c,v 1.32 2011/12/27 23:34:13 christos Exp $"); #endif #endif /* not lint */ @@ -486,7 +486,7 @@ ascii_to_bin(char ch) return retval & 0x3f; } -#include <stdio.h> + /* * When we choose to "support" invalid salts, nevertheless disallow those * containing characters that would violate the passwd file format. @@ -501,8 +501,9 @@ ascii_is_unsafe(char ch) * Return a pointer to static data consisting of the "setting" * followed by an encryption produced by the "key" and "setting". */ +char *__crypt(const char *, const char *); char * -crypt(const char *key, const char *setting) +__crypt(const char *key, const char *setting) { char *encp; int32_t i; @@ -613,6 +614,15 @@ crypt(const char *key, const char *setti return (cryptresult); } +char * +crypt(const char *key, const char *salt) +{ + char *res = __crypt(key, salt); + if (res) + return res; + /* How do I handle errors ? Return "*0" or "*1" */ + return __UNCONST(salt[0] == '*' && salt[1] == '0' ? "*1" : "*0"); +} /* * The Key Schedule, filled in by des_setkey() or setkey().