forked from pool/cryptsetup
36 lines
938 B
Diff
36 lines
938 B
Diff
Index: hashalot-0.3/hashalot.c
|
|
===================================================================
|
|
--- hashalot-0.3.orig/hashalot.c
|
|
+++ hashalot-0.3/hashalot.c
|
|
@@ -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);
|
|
|
|
@@ -182,8 +183,7 @@ static void *
|
|
xmalloc (size_t size) {
|
|
void *p;
|
|
|
|
- if (size == 0)
|
|
- return NULL;
|
|
+ assert(size != 0);
|
|
|
|
p = malloc(size);
|
|
if (p == NULL) {
|
|
@@ -242,6 +242,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;
|