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().