From 38570b26b88a705064a2753feb9233319f796f7b Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Thu, 21 Sep 2017 02:11:35 -0400 Subject: [PATCH] Clear a goto in d1_srtp.cc. Bug: 132 Change-Id: I4ba12f1dfbbdc75cb3841dc70f9007bd8695da97 Reviewed-on: https://boringssl-review.googlesource.com/20665 Reviewed-by: Steven Valdez Commit-Queue: David Benjamin CQ-Verified: CQ bot account: commit-bot@chromium.org --- ssl/d1_srtp.cc | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/ssl/d1_srtp.cc b/ssl/d1_srtp.cc index 30733ec6..1a8e0848 100644 --- a/ssl/d1_srtp.cc +++ b/ssl/d1_srtp.cc @@ -160,9 +160,9 @@ static int find_profile_by_name(const char *profile_name, static int ssl_ctx_make_profiles(const char *profiles_string, STACK_OF(SRTP_PROTECTION_PROFILE) **out) { - STACK_OF(SRTP_PROTECTION_PROFILE) *profiles = - sk_SRTP_PROTECTION_PROFILE_new_null(); - if (profiles == NULL) { + UniquePtr profiles( + sk_SRTP_PROTECTION_PROFILE_new_null()); + if (profiles == nullptr) { OPENSSL_PUT_ERROR(SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES); return 0; } @@ -176,11 +176,11 @@ static int ssl_ctx_make_profiles(const char *profiles_string, if (!find_profile_by_name(ptr, &profile, col ? (size_t)(col - ptr) : strlen(ptr))) { OPENSSL_PUT_ERROR(SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE); - goto err; + return 0; } - if (!sk_SRTP_PROTECTION_PROFILE_push(profiles, profile)) { - goto err; + if (!sk_SRTP_PROTECTION_PROFILE_push(profiles.get(), profile)) { + return 0; } if (col) { @@ -189,12 +189,8 @@ static int ssl_ctx_make_profiles(const char *profiles_string, } while (col); sk_SRTP_PROTECTION_PROFILE_free(*out); - *out = profiles; + *out = profiles.release(); return 1; - -err: - sk_SRTP_PROTECTION_PROFILE_free(profiles); - return 0; } int SSL_CTX_set_srtp_profiles(SSL_CTX *ctx, const char *profiles) {