Clear a goto in d1_srtp.cc.
Bug: 132
Change-Id: I4ba12f1dfbbdc75cb3841dc70f9007bd8695da97
Reviewed-on: https://boringssl-review.googlesource.com/20665
Reviewed-by: Steven Valdez <svaldez@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/ssl/d1_srtp.cc b/ssl/d1_srtp.cc
index 30733ec..1a8e084 100644
--- a/ssl/d1_srtp.cc
+++ b/ssl/d1_srtp.cc
@@ -160,9 +160,9 @@
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<STACK_OF(SRTP_PROTECTION_PROFILE)> 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 @@
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 @@
} 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) {