diff --git a/include/grpc++/security/credentials.h b/include/grpc++/security/credentials.h
index 01b9710f6b3c69dcc5b7a78ebb212bcadf05319d..fafcfdc90618b48b557d486ca52d212c3b9fec00 100644
--- a/include/grpc++/security/credentials.h
+++ b/include/grpc++/security/credentials.h
@@ -177,7 +177,7 @@ class MetadataCredentialsPlugin {
   // a different thread from the one processing the call.
   virtual bool IsBlocking() const { return true; }
 
-  // Gets the auth metatada produced by this plugin. */
+  // Gets the auth metatada produced by this plugin.
   virtual Status GetMetadata(
       grpc::string_ref service_url,
       std::multimap<grpc::string, grpc::string_ref>* metadata) = 0;
diff --git a/src/cpp/client/secure_credentials.cc b/src/cpp/client/secure_credentials.cc
index 8333b01f29bebf926c751740c58b7e009cd06393..99b7468e86530aee997a9b2c9a14bd6f15a3dfb5 100644
--- a/src/cpp/client/secure_credentials.cc
+++ b/src/cpp/client/secure_credentials.cc
@@ -183,7 +183,7 @@ void MetadataCredentialsPluginWrapper::InvokePlugin(
                   0,
                   {{nullptr, nullptr, nullptr, nullptr}}});
   }
-  cb(user_data, &md[0], md.size(),
+  cb(user_data, md.empty() ? nullptr : &md[0], md.size(),
      static_cast<grpc_status_code>(status.error_code()),
      status.error_message().c_str());
 }