Index: chromeos/dbus/experimental_bluetooth_profile_service_provider.cc |
diff --git a/chromeos/dbus/experimental_bluetooth_profile_service_provider.cc b/chromeos/dbus/experimental_bluetooth_profile_service_provider.cc |
index a58c8bc8992be3025994b6b67c530fe0c53aff6a..f8553d30234d3c2a0d33a28b32a1597d8c3abd00 100644 |
--- a/chromeos/dbus/experimental_bluetooth_profile_service_provider.cc |
+++ b/chromeos/dbus/experimental_bluetooth_profile_service_provider.cc |
@@ -113,13 +113,14 @@ class ExperimentalBluetoothProfileServiceProviderImpl |
dbus::MessageReader reader(method_call); |
dbus::ObjectPath device_path; |
- dbus::FileDescriptor fd; |
+ dbus::FileDescriptor* fd = new dbus::FileDescriptor(); |
dbus::MessageReader array_reader(NULL); |
if (!reader.PopObjectPath(&device_path) || |
- !reader.PopFileDescriptor(&fd) || |
+ !reader.PopFileDescriptor(fd) || |
!reader.PopArray(&array_reader)) { |
LOG(WARNING) << "NewConnection called with incorrect paramters: " |
<< method_call->ToString(); |
+ delete fd; |
return; |
} |
@@ -145,9 +146,8 @@ class ExperimentalBluetoothProfileServiceProviderImpl |
method_call, |
response_sender); |
- delegate_->NewConnection(device_path, &fd, options, callback); |
- |
- response_sender.Run(dbus::Response::FromMethodCall(method_call)); |
+ // Ownership of fd is passed to delegate. |
+ delegate_->NewConnection(device_path, fd, options, callback); |
} |
// Called by dbus:: when the Bluetooth daemon is about to disconnect the |