Finish aligning up_ref functions with OpenSSL 1.1.0.

All external callers should be resolved now.

BUG=89

Change-Id: I6055450e8202c59cca49e4a824be3ec11c32a15a
Reviewed-on: https://boringssl-review.googlesource.com/10285
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Adam Langley <agl@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/ssl/handshake_client.c b/ssl/handshake_client.c
index 89140d9..34c1adc 100644
--- a/ssl/handshake_client.c
+++ b/ssl/handshake_client.c
@@ -1039,7 +1039,8 @@
   ssl->s3->new_session->cert_chain = chain;
 
   X509_free(ssl->s3->new_session->peer);
-  ssl->s3->new_session->peer = X509_up_ref(leaf);
+  X509_up_ref(leaf);
+  ssl->s3->new_session->peer = leaf;
 
   return 1;
 
diff --git a/ssl/ssl_cert.c b/ssl/ssl_cert.c
index 20a8884..c35834e 100644
--- a/ssl/ssl_cert.c
+++ b/ssl/ssl_cert.c
@@ -171,7 +171,8 @@
   ret->dh_tmp_cb = cert->dh_tmp_cb;
 
   if (cert->x509 != NULL) {
-    ret->x509 = X509_up_ref(cert->x509);
+    X509_up_ref(cert->x509);
+    ret->x509 = cert->x509;
   }
 
   if (cert->privatekey != NULL) {
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
index 1872f57..1a950ad 100644
--- a/ssl/ssl_lib.c
+++ b/ssl/ssl_lib.c
@@ -1019,7 +1019,8 @@
   if (session == NULL || session->peer == NULL) {
     return NULL;
   }
-  return X509_up_ref(session->peer);
+  X509_up_ref(session->peer);
+  return session->peer;
 }
 
 STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *ssl) {
diff --git a/ssl/ssl_rsa.c b/ssl/ssl_rsa.c
index 295f37a..c06207f 100644
--- a/ssl/ssl_rsa.c
+++ b/ssl/ssl_rsa.c
@@ -235,7 +235,8 @@
   EVP_PKEY_free(pkey);
 
   X509_free(c->x509);
-  c->x509 = X509_up_ref(x);
+  X509_up_ref(x);
+  c->x509 = x;
 
   return 1;
 }
diff --git a/ssl/ssl_session.c b/ssl/ssl_session.c
index 4680a40..1d634d8 100644
--- a/ssl/ssl_session.c
+++ b/ssl/ssl_session.c
@@ -198,7 +198,8 @@
     }
   }
   if (session->peer != NULL) {
-    new_session->peer = X509_up_ref(session->peer);
+    X509_up_ref(session->peer);
+    new_session->peer = session->peer;
   }
   if (session->cert_chain != NULL) {
     new_session->cert_chain = X509_chain_up_ref(session->cert_chain);
diff --git a/ssl/ssl_test.cc b/ssl/ssl_test.cc
index c2ce99b..4c4f6d9 100644
--- a/ssl/ssl_test.cc
+++ b/ssl/ssl_test.cc
@@ -811,7 +811,8 @@
     return false;
   }
   // Do not configure a reading BIO, but record what's written to a memory BIO.
-  SSL_set_bio(ssl, nullptr /* rbio */, BIO_up_ref(bio.get()));
+  BIO_up_ref(bio.get());
+  SSL_set_bio(ssl, nullptr /* rbio */, bio.get());
   int ret = SSL_connect(ssl);
   if (ret > 0) {
     // SSL_connect should fail without a BIO to write to.
diff --git a/ssl/tls13_both.c b/ssl/tls13_both.c
index 35fea53..2527896 100644
--- a/ssl/tls13_both.c
+++ b/ssl/tls13_both.c
@@ -230,7 +230,9 @@
   ssl->s3->new_session->verify_result = ssl->verify_result;
 
   X509_free(ssl->s3->new_session->peer);
-  ssl->s3->new_session->peer = X509_up_ref(sk_X509_value(chain, 0));
+  X509 *leaf = sk_X509_value(chain, 0);
+  X509_up_ref(leaf);
+  ssl->s3->new_session->peer = leaf;
 
   sk_X509_pop_free(ssl->s3->new_session->cert_chain, X509_free);
   ssl->s3->new_session->cert_chain = chain;