1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
diff -urN -x .svn ../../branches/vendor/mhash/src/keygen_test.c ./src/keygen_test.c
--- ../../branches/vendor/mhash/src/keygen_test.c 2008-01-16 14:34:18.000000000 +0200
+++ ./src/keygen_test.c 2008-01-16 15:36:24.000000000 +0200
@@ -43,6 +43,12 @@
passlen=sizeof(PASSWORD1);
password = mutils_malloc(passlen+1);
+ if (password == NULL)
+ {
+ fprintf(stderr, "KEYGEN-Test (KEYGEN_MCRYPT): Failed\n");
+ fprintf(stderr, "Cannot allocate memory.\n");
+ return(MUTILS_SYSTEM_RESOURCE_ERROR);
+ }
mutils_strncpy(password, (mutils_word8 *) PASSWORD1, passlen);
if (mhash_get_keygen_max_key_size(KEYGEN_MCRYPT)==0) {
@@ -64,6 +70,8 @@
{
fprintf(stderr, "KEYGEN-Test (KEYGEN_MCRYPT): Failed\n");
fprintf(stderr, "Cannot allocate memory.\n");
+ mutils_free(password);
+ mutils_free(salt);
return(MUTILS_SYSTEM_RESOURCE_ERROR);
}
@@ -74,12 +82,16 @@
mhash_keygen_ext(KEYGEN_MCRYPT, data, key, keysize, password, passlen);
+ mutils_free(salt);
+
tmp = mutils_asciify(key, keysize);
if (tmp == NULL)
{
fprintf(stderr, "KEYGEN-Test (KEYGEN_MCRYPT): Failed\n");
fprintf(stderr, "Cannot allocate memory (2).\n");
+ mutils_free(password);
+ mutils_free(key);
return(MUTILS_SYSTEM_RESOURCE_ERROR);
}
@@ -91,6 +103,7 @@
if (result != 0) {
fprintf(stderr, "KEYGEN-Test (KEYGEN_MCRYPT): Failed\n");
fprintf(stderr, "Expecting: 0x%s\nGot: 0x%s\n", KEY1, tmp);
+ mutils_free(tmp);
return(MUTILS_INVALID_RESULT);
}
@@ -98,6 +111,12 @@
passlen = sizeof(PASSWORD2);
password = (mutils_word8 *) mutils_malloc(passlen + 1);
+ if (password == NULL)
+ {
+ fprintf(stderr, "KEYGEN-Test (KEYGEN_MCRYPT): Failed\n");
+ fprintf(stderr, "Cannot allocate memory.\n");
+ return(MUTILS_SYSTEM_RESOURCE_ERROR);
+ }
mutils_strncpy(password, (mutils_word8 *) PASSWORD2, passlen);
if (mhash_get_keygen_max_key_size(KEYGEN_S2K_SALTED)==0) {
@@ -114,6 +133,15 @@
salt = (mutils_word8 *) mutils_malloc(salt_size);
key = (mutils_word8 *) mutils_malloc(keysize);
+ if ((salt == NULL) || (key == NULL))
+ {
+ fprintf(stderr, "KEYGEN-Test (KEYGEN_MCRYPT): Failed\n");
+ fprintf(stderr, "Cannot allocate memory.\n");
+ mutils_free(password);
+ mutils_free(salt);
+ return(MUTILS_SYSTEM_RESOURCE_ERROR);
+ }
+
data.hash_algorithm[0] = MHASH_SHA1;
data.count = 0;
data.salt = salt;
@@ -121,10 +149,19 @@
mhash_keygen_ext(KEYGEN_S2K_SALTED, data, key, keysize, password, passlen);
- mutils_memset(tmp, 0, keysize * 2);
+ mutils_free(salt);
tmp = mutils_asciify(key, keysize);
+ if (tmp == NULL)
+ {
+ fprintf(stderr, "KEYGEN-Test (KEYGEN_MCRYPT): Failed\n");
+ fprintf(stderr, "Cannot allocate memory.\n");
+ mutils_free(password);
+ mutils_free(key);
+ return(MUTILS_SYSTEM_RESOURCE_ERROR);
+ }
+
result = mutils_strcmp((mutils_word8 *) KEY2, tmp);
mutils_free(password);
@@ -133,6 +170,7 @@
if (mutils_strcmp((mutils_word8 *) KEY2, tmp) != 0) {
fprintf(stderr, "KEYGEN-Test (KEYGEN_S2K_SALTED): Failed\n");
fprintf(stderr, "Expecting: 0x%s\nGot: 0x%s\n", KEY2, tmp);
+ mutils_free(tmp);
return(MUTILS_INVALID_RESULT);
}
|