Parcourir la source

tests: Fix resource leak in test-rsa-sig-ver on error paths

The opened FILE pointer needs to be closed on error paths.

Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
Nishant Chaprana il y a 9 ans
Parent
commit
bcc332e760
1 fichiers modifiés avec 13 ajouts et 3 suppressions
  1. 13 3
      tests/test-rsa-sig-ver.c

+ 13 - 3
tests/test-rsa-sig-ver.c

@@ -59,6 +59,7 @@ static int cavp_rsa_sig_ver(const char *fname)
 			tmp_len = os_strlen(pos);
 			tmp_len = os_strlen(pos);
 			if (tmp_len > sizeof(msg) * 2) {
 			if (tmp_len > sizeof(msg) * 2) {
 				printf("Too long Msg\n");
 				printf("Too long Msg\n");
+				fclose(f);
 				return -1;
 				return -1;
 			}
 			}
 			msg_len = tmp_len / 2;
 			msg_len = tmp_len / 2;
@@ -71,6 +72,7 @@ static int cavp_rsa_sig_ver(const char *fname)
 			tmp_len = os_strlen(pos);
 			tmp_len = os_strlen(pos);
 			if (tmp_len > sizeof(n) * 2) {
 			if (tmp_len > sizeof(n) * 2) {
 				printf("Too long n\n");
 				printf("Too long n\n");
+				fclose(f);
 				return -1;
 				return -1;
 			}
 			}
 			n_len = tmp_len / 2;
 			n_len = tmp_len / 2;
@@ -83,6 +85,7 @@ static int cavp_rsa_sig_ver(const char *fname)
 			tmp_len = os_strlen(pos);
 			tmp_len = os_strlen(pos);
 			if (tmp_len > sizeof(e) * 2) {
 			if (tmp_len > sizeof(e) * 2) {
 				printf("Too long e\n");
 				printf("Too long e\n");
+				fclose(f);
 				return -1;
 				return -1;
 			}
 			}
 			e_len = tmp_len / 2;
 			e_len = tmp_len / 2;
@@ -95,6 +98,7 @@ static int cavp_rsa_sig_ver(const char *fname)
 			tmp_len = os_strlen(pos);
 			tmp_len = os_strlen(pos);
 			if (tmp_len > sizeof(s) * 2) {
 			if (tmp_len > sizeof(s) * 2) {
 				printf("Too long S\n");
 				printf("Too long S\n");
+				fclose(f);
 				return -1;
 				return -1;
 			}
 			}
 			s_len = tmp_len / 2;
 			s_len = tmp_len / 2;
@@ -105,8 +109,10 @@ static int cavp_rsa_sig_ver(const char *fname)
 			}
 			}
 		} else if (os_strncmp(buf, "EM", 2) == 0) {
 		} else if (os_strncmp(buf, "EM", 2) == 0) {
 			tmp_len = os_strlen(pos);
 			tmp_len = os_strlen(pos);
-			if (tmp_len > sizeof(em) * 2)
+			if (tmp_len > sizeof(em) * 2) {
+				fclose(f);
 				return -1;
 				return -1;
+			}
 			em_len = tmp_len / 2;
 			em_len = tmp_len / 2;
 			if (hexstr2bin(pos, em, em_len) < 0) {
 			if (hexstr2bin(pos, em, em_len) < 0) {
 				printf("Invalid hex string '%s'\n", pos);
 				printf("Invalid hex string '%s'\n", pos);
@@ -125,13 +131,17 @@ static int cavp_rsa_sig_ver(const char *fname)
 			addr[0] = msg;
 			addr[0] = msg;
 			len[0] = msg_len;
 			len[0] = msg_len;
 			if (os_strcmp(sha_alg, "SHA1") == 0) {
 			if (os_strcmp(sha_alg, "SHA1") == 0) {
-				if (sha1_vector(1, addr, len, hash) < 0)
+				if (sha1_vector(1, addr, len, hash) < 0) {
+					fclose(f);
 					return -1;
 					return -1;
+				}
 				hash_len = 20;
 				hash_len = 20;
 				alg = &asn1_sha1_oid;
 				alg = &asn1_sha1_oid;
 			} else if (os_strcmp(sha_alg, "SHA256") == 0) {
 			} else if (os_strcmp(sha_alg, "SHA256") == 0) {
-				if (sha256_vector(1, addr, len, hash) < 0)
+				if (sha256_vector(1, addr, len, hash) < 0) {
+					fclose(f);
 					return -1;
 					return -1;
+				}
 				hash_len = 32;
 				hash_len = 32;
 				alg = &asn1_sha256_oid;
 				alg = &asn1_sha256_oid;
 			} else {
 			} else {