mirror of https://github.com/openssl/openssl.git
				
				
				
			test: fix coverity 1451550: unchecked return value
Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14615)
This commit is contained in:
		
							parent
							
								
									f47865156a
								
							
						
					
					
						commit
						3352a4f6fa
					
				|  | @ -283,11 +283,12 @@ static int send_record(BIO *rbio, unsigned char type, uint64_t seqnr, | ||||||
|     unsigned char lenbytes[2]; |     unsigned char lenbytes[2]; | ||||||
|     EVP_MAC *hmac; |     EVP_MAC *hmac; | ||||||
|     EVP_MAC_CTX *ctx; |     EVP_MAC_CTX *ctx; | ||||||
|     EVP_CIPHER_CTX *enc_ctx; |     EVP_CIPHER_CTX *enc_ctx = NULL; | ||||||
|     unsigned char iv[16]; |     unsigned char iv[16]; | ||||||
|     unsigned char pad; |     unsigned char pad; | ||||||
|     unsigned char *enc; |     unsigned char *enc; | ||||||
|     OSSL_PARAM params[2]; |     OSSL_PARAM params[2]; | ||||||
|  |     int ret = 0; | ||||||
| 
 | 
 | ||||||
|     seq[0] = (seqnr >> 40) & 0xff; |     seq[0] = (seqnr >> 40) & 0xff; | ||||||
|     seq[1] = (seqnr >> 32) & 0xff; |     seq[1] = (seqnr >> 32) & 0xff; | ||||||
|  | @ -305,23 +306,26 @@ static int send_record(BIO *rbio, unsigned char type, uint64_t seqnr, | ||||||
|     memcpy(enc, msg, len); |     memcpy(enc, msg, len); | ||||||
| 
 | 
 | ||||||
|     /* Append HMAC to data */ |     /* Append HMAC to data */ | ||||||
|     hmac = EVP_MAC_fetch(NULL, "HMAC", NULL); |     if ((hmac = EVP_MAC_fetch(NULL, "HMAC", NULL)) == NULL) | ||||||
|  |         return 0; | ||||||
|     ctx = EVP_MAC_CTX_new(hmac); |     ctx = EVP_MAC_CTX_new(hmac); | ||||||
|     EVP_MAC_free(hmac); |     EVP_MAC_free(hmac); | ||||||
|  |     if (ctx == NULL) | ||||||
|  |         return 0; | ||||||
|     params[0] = OSSL_PARAM_construct_utf8_string(OSSL_MAC_PARAM_DIGEST, |     params[0] = OSSL_PARAM_construct_utf8_string(OSSL_MAC_PARAM_DIGEST, | ||||||
|                                                  "SHA1", 0); |                                                  "SHA1", 0); | ||||||
|     params[1] = OSSL_PARAM_construct_end(); |     params[1] = OSSL_PARAM_construct_end(); | ||||||
|     EVP_MAC_init(ctx, mac_key, 20, params); |  | ||||||
|     EVP_MAC_update(ctx, epoch, 2); |  | ||||||
|     EVP_MAC_update(ctx, seq, 6); |  | ||||||
|     EVP_MAC_update(ctx, &type, 1); |  | ||||||
|     EVP_MAC_update(ctx, ver, 2); /* Version */ |  | ||||||
|     lenbytes[0] = (unsigned char)(len >> 8); |     lenbytes[0] = (unsigned char)(len >> 8); | ||||||
|     lenbytes[1] = (unsigned char)(len); |     lenbytes[1] = (unsigned char)(len); | ||||||
|     EVP_MAC_update(ctx, lenbytes, 2); /* Length */ |     if (!EVP_MAC_init(ctx, mac_key, 20, params) | ||||||
|     EVP_MAC_update(ctx, enc, len); /* Finally the data itself */ |             || !EVP_MAC_update(ctx, epoch, 2) | ||||||
|     EVP_MAC_final(ctx, enc + len, NULL, SHA_DIGEST_LENGTH); |             || !EVP_MAC_update(ctx, seq, 6) | ||||||
|     EVP_MAC_CTX_free(ctx); |             || !EVP_MAC_update(ctx, &type, 1) | ||||||
|  |             || !EVP_MAC_update(ctx, ver, 2)      /* Version */ | ||||||
|  |             || !EVP_MAC_update(ctx, lenbytes, 2) /* Length */ | ||||||
|  |             || !EVP_MAC_update(ctx, enc, len)    /* Finally the data itself */ | ||||||
|  |             || !EVP_MAC_final(ctx, enc + len, NULL, SHA_DIGEST_LENGTH)) | ||||||
|  |         goto end; | ||||||
| 
 | 
 | ||||||
|     /* Append padding bytes */ |     /* Append padding bytes */ | ||||||
|     len += SHA_DIGEST_LENGTH; |     len += SHA_DIGEST_LENGTH; | ||||||
|  | @ -330,11 +334,12 @@ static int send_record(BIO *rbio, unsigned char type, uint64_t seqnr, | ||||||
|     } while (len % 16); |     } while (len % 16); | ||||||
| 
 | 
 | ||||||
|     /* Generate IV, and encrypt */ |     /* Generate IV, and encrypt */ | ||||||
|     RAND_bytes(iv, sizeof(iv)); |     if (!TEST_true(RAND_bytes(iv, sizeof(iv))) | ||||||
|     enc_ctx = EVP_CIPHER_CTX_new(); |             || !TEST_ptr(enc_ctx = EVP_CIPHER_CTX_new()) | ||||||
|     EVP_CipherInit_ex(enc_ctx, EVP_aes_128_cbc(), NULL, enc_key, iv, 1); |             || !TEST_true(EVP_CipherInit_ex(enc_ctx, EVP_aes_128_cbc(), NULL, | ||||||
|     EVP_Cipher(enc_ctx, enc, enc, len); |                                             enc_key, iv, 1)) | ||||||
|     EVP_CIPHER_CTX_free(enc_ctx); |             || !TEST_int_ge(EVP_Cipher(enc_ctx, enc, enc, len), 0)) | ||||||
|  |         goto end; | ||||||
| 
 | 
 | ||||||
|     /* Finally write header (from fragmented variables), IV and encrypted record */ |     /* Finally write header (from fragmented variables), IV and encrypted record */ | ||||||
|     BIO_write(rbio, &type, 1); |     BIO_write(rbio, &type, 1); | ||||||
|  | @ -347,9 +352,12 @@ static int send_record(BIO *rbio, unsigned char type, uint64_t seqnr, | ||||||
| 
 | 
 | ||||||
|     BIO_write(rbio, iv, sizeof(iv)); |     BIO_write(rbio, iv, sizeof(iv)); | ||||||
|     BIO_write(rbio, enc, len); |     BIO_write(rbio, enc, len); | ||||||
| 
 |     ret = 1; | ||||||
|  |  end: | ||||||
|  |     EVP_MAC_CTX_free(ctx); | ||||||
|  |     EVP_CIPHER_CTX_free(enc_ctx); | ||||||
|     OPENSSL_free(enc); |     OPENSSL_free(enc); | ||||||
|     return 1; |     return ret; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int send_finished(SSL *s, BIO *rbio) | static int send_finished(SSL *s, BIO *rbio) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue