forked from pool/cryptsetup
35 lines
973 B
Diff
35 lines
973 B
Diff
diff -up hashalot-0.3/hashalot.c.orig hashalot-0.3/hashalot.c
|
|
--- hashalot-0.3/hashalot.c.orig 2009-02-11 19:31:16.000000000 -0600
|
|
+++ hashalot-0.3/hashalot.c 2009-02-11 19:47:46.000000000 -0600
|
|
@@ -34,6 +34,7 @@
|
|
#include "sha512.h"
|
|
|
|
#define PASSWDBUFFLEN 130
|
|
+#define MAXHASHLEN (ULONG_MAX/2 - 2)
|
|
|
|
typedef int (*phash_func_t)(char dest[], size_t dest_len, const char src[], size_t src_len);
|
|
|
|
@@ -179,8 +180,7 @@ static void *
|
|
xmalloc (size_t size) {
|
|
void *p;
|
|
|
|
- if (size == 0)
|
|
- return NULL;
|
|
+ assert(size != 0);
|
|
|
|
p = malloc(size);
|
|
if (p == NULL) {
|
|
@@ -239,6 +239,12 @@ main(int argc, char *argv[])
|
|
show_usage(argv[0]);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
+ if (hashlen >= MAXHASHLEN) {
|
|
+ fprintf(stderr,
|
|
+ "please supply a value smaller than %lu for the -n option\n",
|
|
+ MAXHASHLEN);
|
|
+ exit(EXIT_FAILURE);
|
|
+ }
|
|
break;
|
|
case 's':
|
|
salt = optarg;
|