Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/lib/libc/md/mdXhl.c,v rcsdiff: /ftp/cvs/cvsroot/src/lib/libc/md/mdXhl.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.3 retrieving revision 1.4 diff -u -p -r1.3 -r1.4 --- src/lib/libc/md/mdXhl.c 1998/11/13 15:48:30 1.3 +++ src/lib/libc/md/mdXhl.c 1999/09/16 11:45:10 1.4 @@ -1,4 +1,4 @@ -/* $NetBSD: mdXhl.c,v 1.3 1998/11/13 15:48:30 christos Exp $ */ +/* $NetBSD: mdXhl.c,v 1.4 1999/09/16 11:45:10 lukem Exp $ */ /* * ---------------------------------------------------------------------------- @@ -16,12 +16,13 @@ */ #include -#include -#include +#include +#include #include #include #include +#include #define CONCAT(x,y) __CONCAT(x,y) #define MDNAME(x) CONCAT(MDALGORITHM,x) @@ -35,6 +36,12 @@ MDNAME(End)(ctx, buf) unsigned char digest[16]; static const char hex[]="0123456789abcdef"; + _DIAGASSERT(ctx != 0); +#ifdef _DIAGNOSTIC + if (ctx == 0) + return (NULL); +#endif + if (buf == NULL) buf = malloc(33); if (buf == NULL) @@ -60,6 +67,13 @@ MDNAME(File)(filename, buf) MDNAME(_CTX) ctx; int f, i, j; + _DIAGASSERT(filename != 0); + /* buf may be NULL */ +#ifdef _DIAGNOSTIC + if (filename == 0 || *filename == '\0') + return (NULL); +#endif + MDNAME(Init)(&ctx); f = open(filename, O_RDONLY, 0666); if (f < 0) @@ -86,6 +100,12 @@ MDNAME(Data)(data, len, buf) { MDNAME(_CTX) ctx; + _DIAGASSERT(data != 0); +#ifdef _DIAGNOSTIC + if (data == 0) + return (NULL); +#endif + MDNAME(Init)(&ctx); MDNAME(Update)(&ctx, data, len); return (MDNAME(End)(&ctx, buf));