return error properly on hex decode

This commit is contained in:
Klas Lindfors
2015-02-02 10:17:45 +01:00
parent 60c8b757ae
commit 22d04fc1c8
2 changed files with 4 additions and 0 deletions
+2
View File
@@ -466,6 +466,8 @@ ykpiv_rc ykpiv_hex_decode(const char *hex_in, size_t in_len,
int index = 0; int index = 0;
if(ind_ptr) { if(ind_ptr) {
index = ind_ptr - hex_translate; index = ind_ptr - hex_translate;
} else {
return YKPIV_PARSE_ERROR;
} }
if(first) { if(first) {
*hex_out = index << 4; *hex_out = index << 4;
+2
View File
@@ -1201,6 +1201,7 @@ int main(int argc, char *argv[]) {
unsigned char key[KEY_LEN]; unsigned char key[KEY_LEN];
size_t key_len = sizeof(key); size_t key_len = sizeof(key);
if(ykpiv_hex_decode(args_info.key_arg, strlen(args_info.key_arg), key, &key_len) != YKPIV_OK) { if(ykpiv_hex_decode(args_info.key_arg, strlen(args_info.key_arg), key, &key_len) != YKPIV_OK) {
fprintf(stderr, "Failed decoding key!\n");
return EXIT_FAILURE; return EXIT_FAILURE;
} }
@@ -1245,6 +1246,7 @@ int main(int argc, char *argv[]) {
unsigned char new_key[KEY_LEN]; unsigned char new_key[KEY_LEN];
size_t new_key_len = sizeof(new_key); size_t new_key_len = sizeof(new_key);
if(ykpiv_hex_decode(args_info.new_key_arg, strlen(args_info.new_key_arg), new_key, &new_key_len) != YKPIV_OK) { if(ykpiv_hex_decode(args_info.new_key_arg, strlen(args_info.new_key_arg), new_key, &new_key_len) != YKPIV_OK) {
fprintf(stderr, "Failed decoding new key!\n");
ret = EXIT_FAILURE; ret = EXIT_FAILURE;
} else if(ykpiv_set_mgmkey(state, new_key) != YKPIV_OK) { } else if(ykpiv_set_mgmkey(state, new_key) != YKPIV_OK) {
ret = EXIT_FAILURE; ret = EXIT_FAILURE;