mirror of https://github.com/openssl/openssl.git
				
				
				
			Standardise our style for checking malloc failures
if we have a malloc |x = OPENSSL_malloc(...)| sometimes we check |x| for NULL and sometimes we treat it as a boolean |if(!x) ...|. Standardise the approach in libssl. Reviewed-by: Kurt Roeckx <kurt@openssl.org>
This commit is contained in:
		
							parent
							
								
									3457e7a087
								
							
						
					
					
						commit
						a71edf3ba2
					
				|  | @ -155,7 +155,7 @@ int dtls1_new(SSL *s) | |||
|     d1->link_mtu = 0; | ||||
|     d1->mtu = 0; | ||||
| 
 | ||||
|     if (!d1->buffered_messages || !d1->sent_messages) { | ||||
|     if (d1->buffered_messages == NULL || d1->sent_messages == NULL) { | ||||
|         pqueue_free(d1->buffered_messages); | ||||
|         pqueue_free(d1->sent_messages); | ||||
|         OPENSSL_free(d1); | ||||
|  |  | |||
|  | @ -137,8 +137,8 @@ int DTLS_RECORD_LAYER_new(RECORD_LAYER *rl) | |||
|     d->processed_rcds.q = pqueue_new(); | ||||
|     d->buffered_app_data.q = pqueue_new(); | ||||
| 
 | ||||
|     if (!d->unprocessed_rcds.q || !d->processed_rcds.q | ||||
|         || !d->buffered_app_data.q) { | ||||
|     if (d->unprocessed_rcds.q == NULL || d->processed_rcds.q == NULL | ||||
|         || d->buffered_app_data.q == NULL) { | ||||
|         pqueue_free(d->unprocessed_rcds.q); | ||||
|         pqueue_free(d->processed_rcds.q); | ||||
|         pqueue_free(d->buffered_app_data.q); | ||||
|  |  | |||
|  | @ -530,7 +530,7 @@ int ssl3_write_bytes(SSL *s, int type, const void *buf_, int len) | |||
|                 packlen *= 4; | ||||
| 
 | ||||
|             wb->buf = OPENSSL_malloc(packlen); | ||||
|             if (!wb->buf) { | ||||
|             if (wb->buf == NULL) { | ||||
|                 SSLerr(SSL_F_SSL3_WRITE_BYTES, ERR_R_MALLOC_FAILURE); | ||||
|                 return -1; | ||||
|             } | ||||
|  |  | |||
|  | @ -4311,7 +4311,7 @@ long ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) | |||
|                 return 0; | ||||
| #endif | ||||
|             ptmp = EVP_PKEY_new(); | ||||
|             if (!ptmp) | ||||
|             if (ptmp == NULL) | ||||
|                 return 0; | ||||
| #ifndef OPENSSL_NO_RSA | ||||
|             else if (s->s3->peer_rsa_tmp) | ||||
|  | @ -4999,7 +4999,7 @@ static int ssl3_set_req_cert_type(CERT *c, const unsigned char *p, size_t len) | |||
|     if (len > 0xff) | ||||
|         return 0; | ||||
|     c->ctypes = OPENSSL_malloc(len); | ||||
|     if (!c->ctypes) | ||||
|     if (c->ctypes == NULL) | ||||
|         return 0; | ||||
|     memcpy(c->ctypes, p, len); | ||||
|     c->ctype_num = len; | ||||
|  |  | |||
|  | @ -282,7 +282,7 @@ CERT *ssl_cert_dup(CERT *cert) | |||
|     /* Configured sigalgs copied across */ | ||||
|     if (cert->conf_sigalgs) { | ||||
|         ret->conf_sigalgs = OPENSSL_malloc(cert->conf_sigalgslen); | ||||
|         if (!ret->conf_sigalgs) | ||||
|         if (ret->conf_sigalgs == NULL) | ||||
|             goto err; | ||||
|         memcpy(ret->conf_sigalgs, cert->conf_sigalgs, cert->conf_sigalgslen); | ||||
|         ret->conf_sigalgslen = cert->conf_sigalgslen; | ||||
|  | @ -291,7 +291,7 @@ CERT *ssl_cert_dup(CERT *cert) | |||
| 
 | ||||
|     if (cert->client_sigalgs) { | ||||
|         ret->client_sigalgs = OPENSSL_malloc(cert->client_sigalgslen); | ||||
|         if (!ret->client_sigalgs) | ||||
|         if (ret->client_sigalgs == NULL) | ||||
|             goto err; | ||||
|         memcpy(ret->client_sigalgs, cert->client_sigalgs, | ||||
|                cert->client_sigalgslen); | ||||
|  | @ -303,7 +303,7 @@ CERT *ssl_cert_dup(CERT *cert) | |||
|     /* Copy any custom client certificate types */ | ||||
|     if (cert->ctypes) { | ||||
|         ret->ctypes = OPENSSL_malloc(cert->ctype_num); | ||||
|         if (!ret->ctypes) | ||||
|         if (ret->ctypes == NULL) | ||||
|             goto err; | ||||
|         memcpy(ret->ctypes, cert->ctypes, cert->ctype_num); | ||||
|         ret->ctype_num = cert->ctype_num; | ||||
|  | @ -968,7 +968,7 @@ int ssl_build_cert_chain(SSL *s, SSL_CTX *ctx, int flags) | |||
|     /* Rearranging and check the chain: add everything to a store */ | ||||
|     if (flags & SSL_BUILD_CHAIN_FLAG_CHECK) { | ||||
|         chain_store = X509_STORE_new(); | ||||
|         if (!chain_store) | ||||
|         if (chain_store == NULL) | ||||
|             goto err; | ||||
|         for (i = 0; i < sk_X509_num(cpk->chain); i++) { | ||||
|             x = sk_X509_value(cpk->chain, i); | ||||
|  |  | |||
|  | @ -1039,7 +1039,7 @@ static int ssl_cipher_strength_sort(CIPHER_ORDER **head_p, | |||
|     } | ||||
| 
 | ||||
|     number_uses = OPENSSL_zalloc(sizeof(int) * (max_strength_bits + 1)); | ||||
|     if (!number_uses) { | ||||
|     if (number_uses == NULL) { | ||||
|         SSLerr(SSL_F_SSL_CIPHER_STRENGTH_SORT, ERR_R_MALLOC_FAILURE); | ||||
|         return (0); | ||||
|     } | ||||
|  |  | |||
|  | @ -487,12 +487,12 @@ static int cmd_DHParameters(SSL_CONF_CTX *cctx, const char *value) | |||
|     BIO *in = NULL; | ||||
|     if (cctx->ctx || cctx->ssl) { | ||||
|         in = BIO_new(BIO_s_file()); | ||||
|         if (!in) | ||||
|         if (in == NULL) | ||||
|             goto end; | ||||
|         if (BIO_read_filename(in, value) <= 0) | ||||
|             goto end; | ||||
|         dh = PEM_read_bio_DHparams(in, NULL, NULL, NULL); | ||||
|         if (!dh) | ||||
|         if (dh == NULL) | ||||
|             goto end; | ||||
|     } else | ||||
|         return 1; | ||||
|  |  | |||
|  | @ -311,7 +311,7 @@ SSL *SSL_new(SSL_CTX *ctx) | |||
|     s->generate_session_id = ctx->generate_session_id; | ||||
| 
 | ||||
|     s->param = X509_VERIFY_PARAM_new(); | ||||
|     if (!s->param) | ||||
|     if (s->param == NULL) | ||||
|         goto err; | ||||
|     X509_VERIFY_PARAM_inherit(s->param, ctx->param); | ||||
|     s->quiet_shutdown = ctx->quiet_shutdown; | ||||
|  | @ -1547,7 +1547,7 @@ int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, | |||
| { | ||||
|     OPENSSL_free(ctx->alpn_client_proto_list); | ||||
|     ctx->alpn_client_proto_list = OPENSSL_malloc(protos_len); | ||||
|     if (!ctx->alpn_client_proto_list) | ||||
|     if (ctx->alpn_client_proto_list == NULL) | ||||
|         return 1; | ||||
|     memcpy(ctx->alpn_client_proto_list, protos, protos_len); | ||||
|     ctx->alpn_client_proto_list_len = protos_len; | ||||
|  | @ -1565,7 +1565,7 @@ int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, | |||
| { | ||||
|     OPENSSL_free(ssl->alpn_client_proto_list); | ||||
|     ssl->alpn_client_proto_list = OPENSSL_malloc(protos_len); | ||||
|     if (!ssl->alpn_client_proto_list) | ||||
|     if (ssl->alpn_client_proto_list == NULL) | ||||
|         return 1; | ||||
|     memcpy(ssl->alpn_client_proto_list, protos, protos_len); | ||||
|     ssl->alpn_client_proto_list_len = protos_len; | ||||
|  | @ -1708,7 +1708,7 @@ SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth) | |||
|     } | ||||
| 
 | ||||
|     ret->param = X509_VERIFY_PARAM_new(); | ||||
|     if (!ret->param) | ||||
|     if (ret->param == NULL) | ||||
|         goto err; | ||||
| 
 | ||||
|     if ((ret->md5 = EVP_get_digestbyname("ssl3-md5")) == NULL) { | ||||
|  |  | |||
|  | @ -1009,7 +1009,7 @@ int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len) | |||
|         s->tlsext_session_ticket = NULL; | ||||
|         s->tlsext_session_ticket = | ||||
|             OPENSSL_malloc(sizeof(TLS_SESSION_TICKET_EXT) + ext_len); | ||||
|         if (!s->tlsext_session_ticket) { | ||||
|         if (s->tlsext_session_ticket == NULL) { | ||||
|             SSLerr(SSL_F_SSL_SET_SESSION_TICKET_EXT, ERR_R_MALLOC_FAILURE); | ||||
|             return 0; | ||||
|         } | ||||
|  |  | |||
|  | @ -2213,7 +2213,7 @@ MSG_PROCESS_RETURN tls_process_new_session_ticket(SSL *s, PACKET *pkt) | |||
|     s->session->tlsext_ticklen = 0; | ||||
| 
 | ||||
|     s->session->tlsext_tick = OPENSSL_malloc(ticklen); | ||||
|     if (!s->session->tlsext_tick) { | ||||
|     if (s->session->tlsext_tick == NULL) { | ||||
|         SSLerr(SSL_F_TLS_PROCESS_NEW_SESSION_TICKET, ERR_R_MALLOC_FAILURE); | ||||
|         goto err; | ||||
|     } | ||||
|  | @ -2267,7 +2267,7 @@ MSG_PROCESS_RETURN tls_process_cert_status(SSL *s, PACKET *pkt) | |||
|     } | ||||
|     OPENSSL_free(s->tlsext_ocsp_resp); | ||||
|     s->tlsext_ocsp_resp = OPENSSL_malloc(resplen); | ||||
|     if (!s->tlsext_ocsp_resp) { | ||||
|     if (s->tlsext_ocsp_resp == NULL) { | ||||
|         al = SSL_AD_INTERNAL_ERROR; | ||||
|         SSLerr(SSL_F_TLS_PROCESS_CERT_STATUS, ERR_R_MALLOC_FAILURE); | ||||
|         goto f_err; | ||||
|  | @ -2451,7 +2451,7 @@ psk_err: | |||
|         RSA *rsa; | ||||
|         pmslen = SSL_MAX_MASTER_KEY_LENGTH; | ||||
|         pms = OPENSSL_malloc(pmslen); | ||||
|         if (!pms) | ||||
|         if (pms == NULL) | ||||
|             goto memerr; | ||||
| 
 | ||||
|         if (s->session->peer == NULL) { | ||||
|  | @ -2553,7 +2553,7 @@ psk_err: | |||
| 
 | ||||
|         pmslen = DH_size(dh_clnt); | ||||
|         pms = OPENSSL_malloc(pmslen); | ||||
|         if (!pms) | ||||
|         if (pms == NULL) | ||||
|             goto memerr; | ||||
| 
 | ||||
|         /*
 | ||||
|  | @ -2693,7 +2693,7 @@ psk_err: | |||
|         } | ||||
|         pmslen = (field_size + 7) / 8; | ||||
|         pms = OPENSSL_malloc(pmslen); | ||||
|         if (!pms) | ||||
|         if (pms == NULL) | ||||
|             goto memerr; | ||||
|         n = ECDH_compute_key(pms, pmslen, srvr_ecpoint, clnt_ecdh, NULL); | ||||
|         if (n <= 0 || pmslen != (size_t)n) { | ||||
|  | @ -2758,7 +2758,7 @@ psk_err: | |||
| 
 | ||||
|         pmslen = 32; | ||||
|         pms = OPENSSL_malloc(pmslen); | ||||
|         if (!pms) | ||||
|         if (pms == NULL) | ||||
|             goto memerr; | ||||
| 
 | ||||
|         /*
 | ||||
|  | @ -2773,6 +2773,11 @@ psk_err: | |||
| 
 | ||||
|         pkey_ctx = EVP_PKEY_CTX_new(pub_key = | ||||
|                                     X509_get_pubkey(peer_cert), NULL); | ||||
|         if (pkey_ctx == NULL) { | ||||
|             SSLerr(SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE, | ||||
|                    ERR_R_MALLOC_FAILURE); | ||||
|             goto err; | ||||
|         } | ||||
|         /*
 | ||||
|          * If we have send a certificate, and certificate key | ||||
|          * | ||||
|  | @ -2989,8 +2994,12 @@ int tls_construct_client_verify(SSL *s) | |||
| 
 | ||||
|     p = ssl_handshake_start(s); | ||||
|     pkey = s->cert->key->privatekey; | ||||
| /* Create context from key and test if sha1 is allowed as digest */ | ||||
|     /* Create context from key and test if sha1 is allowed as digest */ | ||||
|     pctx = EVP_PKEY_CTX_new(pkey, NULL); | ||||
|     if (pctx == NULL) { | ||||
|         SSLerr(SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY, ERR_R_MALLOC_FAILURE); | ||||
|         goto err; | ||||
|     } | ||||
|     EVP_PKEY_sign_init(pctx); | ||||
|     if (EVP_PKEY_CTX_set_signature_md(pctx, EVP_sha1()) > 0) { | ||||
|         if (!SSL_USE_SIGALGS(s)) | ||||
|  |  | |||
|  | @ -1075,7 +1075,7 @@ int dtls1_buffer_message(SSL *s, int is_ccs) | |||
|     OPENSSL_assert(s->init_off == 0); | ||||
| 
 | ||||
|     frag = dtls1_hm_fragment_new(s->init_num, 0); | ||||
|     if (!frag) | ||||
|     if (frag == NULL) | ||||
|         return 0; | ||||
| 
 | ||||
|     memcpy(frag->fragment, s->init_buf->data, s->init_num); | ||||
|  |  | |||
|  | @ -2807,6 +2807,11 @@ MSG_PROCESS_RETURN tls_process_client_key_exchange(SSL *s, PACKET *pkt) | |||
|             pk = s->cert->pkeys[SSL_PKEY_GOST01].privatekey; | ||||
| 
 | ||||
|         pkey_ctx = EVP_PKEY_CTX_new(pk, NULL); | ||||
|         if (pkey_ctx == NULL) { | ||||
|             al = SSL_AD_INTERNAL_ERROR; | ||||
|             SSLerr(SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE, ERR_R_MALLOC_FAILURE); | ||||
|             goto f_err; | ||||
|         } | ||||
|         EVP_PKEY_decrypt_init(pkey_ctx); | ||||
|         /*
 | ||||
|          * If client certificate is present and is of the same type, maybe | ||||
|  | @ -3140,6 +3145,11 @@ MSG_PROCESS_RETURN tls_process_cert_verify(SSL *s, PACKET *pkt) | |||
|         unsigned char signature[64]; | ||||
|         int idx; | ||||
|         EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new(pkey, NULL); | ||||
|         if (pctx == NULL) { | ||||
|             al = SSL_AD_INTERNAL_ERROR; | ||||
|             SSLerr(SSL_F_TLS_PROCESS_CERT_VERIFY, ERR_R_MALLOC_FAILURE); | ||||
|             goto f_err; | ||||
|         } | ||||
|         EVP_PKEY_verify_init(pctx); | ||||
|         if (len != 64) { | ||||
|             fprintf(stderr, "GOST signature length is %d", len); | ||||
|  | @ -3337,7 +3347,7 @@ int tls_construct_new_session_ticket(SSL *s) | |||
|         return 0; | ||||
|     } | ||||
|     senc = OPENSSL_malloc(slen_full); | ||||
|     if (!senc) { | ||||
|     if (senc == NULL) { | ||||
|         ossl_statem_set_error(s); | ||||
|         return 0; | ||||
|     } | ||||
|  |  | |||
							
								
								
									
										20
									
								
								ssl/t1_lib.c
								
								
								
								
							
							
						
						
									
										20
									
								
								ssl/t1_lib.c
								
								
								
								
							|  | @ -599,7 +599,7 @@ int tls1_set_curves(unsigned char **pext, size_t *pextlen, | |||
|      */ | ||||
|     unsigned long dup_list = 0; | ||||
|     clist = OPENSSL_malloc(ncurves * 2); | ||||
|     if (!clist) | ||||
|     if (clist == NULL) | ||||
|         return 0; | ||||
|     for (i = 0, p = clist; i < ncurves; i++) { | ||||
|         unsigned long idmask; | ||||
|  | @ -1327,7 +1327,7 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *buf, | |||
|                  s->tlsext_session_ticket->data) { | ||||
|             ticklen = s->tlsext_session_ticket->length; | ||||
|             s->session->tlsext_tick = OPENSSL_malloc(ticklen); | ||||
|             if (!s->session->tlsext_tick) | ||||
|             if (s->session->tlsext_tick == NULL) | ||||
|                 return NULL; | ||||
|             memcpy(s->session->tlsext_tick, | ||||
|                    s->tlsext_session_ticket->data, ticklen); | ||||
|  | @ -1787,7 +1787,7 @@ static int tls1_alpn_handle_client_hello(SSL *s, PACKET *pkt, int *al) | |||
|     if (r == SSL_TLSEXT_ERR_OK) { | ||||
|         OPENSSL_free(s->s3->alpn_selected); | ||||
|         s->s3->alpn_selected = OPENSSL_malloc(selected_len); | ||||
|         if (!s->s3->alpn_selected) { | ||||
|         if (s->s3->alpn_selected == NULL) { | ||||
|             *al = SSL_AD_INTERNAL_ERROR; | ||||
|             return -1; | ||||
|         } | ||||
|  | @ -2496,7 +2496,7 @@ static int ssl_scan_serverhello_tlsext(SSL *s, PACKET *pkt, int *al) | |||
|                 return 0; | ||||
|             } | ||||
|             s->next_proto_negotiated = OPENSSL_malloc(selected_len); | ||||
|             if (!s->next_proto_negotiated) { | ||||
|             if (s->next_proto_negotiated == NULL) { | ||||
|                 *al = TLS1_AD_INTERNAL_ERROR; | ||||
|                 return 0; | ||||
|             } | ||||
|  | @ -2528,7 +2528,7 @@ static int ssl_scan_serverhello_tlsext(SSL *s, PACKET *pkt, int *al) | |||
|             } | ||||
|             OPENSSL_free(s->s3->alpn_selected); | ||||
|             s->s3->alpn_selected = OPENSSL_malloc(len); | ||||
|             if (!s->s3->alpn_selected) { | ||||
|             if (s->s3->alpn_selected == NULL) { | ||||
|                 *al = TLS1_AD_INTERNAL_ERROR; | ||||
|                 return 0; | ||||
|             } | ||||
|  | @ -3104,7 +3104,7 @@ static int tls_decrypt_ticket(SSL *s, const unsigned char *etick, | |||
|     p = etick + 16 + EVP_CIPHER_CTX_iv_length(&ctx); | ||||
|     eticklen -= 16 + EVP_CIPHER_CTX_iv_length(&ctx); | ||||
|     sdec = OPENSSL_malloc(eticklen); | ||||
|     if (!sdec) { | ||||
|     if (sdec == NULL) { | ||||
|         EVP_CIPHER_CTX_cleanup(&ctx); | ||||
|         return -1; | ||||
|     } | ||||
|  | @ -3430,7 +3430,7 @@ static int tls1_set_shared_sigalgs(SSL *s) | |||
|     nmatch = tls12_shared_sigalgs(s, NULL, pref, preflen, allow, allowlen); | ||||
|     if (nmatch) { | ||||
|         salgs = OPENSSL_malloc(nmatch * sizeof(TLS_SIGALGS)); | ||||
|         if (!salgs) | ||||
|         if (salgs == NULL) | ||||
|             return 0; | ||||
|         nmatch = tls12_shared_sigalgs(s, salgs, pref, preflen, allow, allowlen); | ||||
|     } else { | ||||
|  | @ -4179,16 +4179,16 @@ DH *ssl_get_auto_dh(SSL *s) | |||
| 
 | ||||
|     if (dh_secbits >= 128) { | ||||
|         DH *dhp = DH_new(); | ||||
|         if (!dhp) | ||||
|         if (dhp == NULL) | ||||
|             return NULL; | ||||
|         dhp->g = BN_new(); | ||||
|         if (dhp->g) | ||||
|         if (dhp->g != NULL) | ||||
|             BN_set_word(dhp->g, 2); | ||||
|         if (dh_secbits >= 192) | ||||
|             dhp->p = get_rfc3526_prime_8192(NULL); | ||||
|         else | ||||
|             dhp->p = get_rfc3526_prime_3072(NULL); | ||||
|         if (!dhp->p || !dhp->g) { | ||||
|         if (dhp->p == NULL || dhp->g == NULL) { | ||||
|             DH_free(dhp); | ||||
|             return NULL; | ||||
|         } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue