mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1074419: Close received socket file descriptors on errors, r=shawnjohnjr
This commit is contained in:
parent
0608f59d0d
commit
91f913f386
@ -363,6 +363,8 @@ public:
|
|||||||
{
|
{
|
||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
|
|
||||||
|
mozilla::ScopedClose fd(aFd); // Close received socket fd on error
|
||||||
|
|
||||||
if (mImpl->IsShutdownOnMainThread()) {
|
if (mImpl->IsShutdownOnMainThread()) {
|
||||||
BT_LOGD("mConsumer is null, aborting receive!");
|
BT_LOGD("mConsumer is null, aborting receive!");
|
||||||
return;
|
return;
|
||||||
@ -374,7 +376,8 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
mImpl->mConsumer->SetAddress(aBdAddress);
|
mImpl->mConsumer->SetAddress(aBdAddress);
|
||||||
XRE_GetIOMessageLoop()->PostTask(FROM_HERE, new AcceptTask(mImpl, aFd));
|
XRE_GetIOMessageLoop()->PostTask(FROM_HERE,
|
||||||
|
new AcceptTask(mImpl, fd.forget()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnError(BluetoothStatus aStatus) MOZ_OVERRIDE
|
void OnError(BluetoothStatus aStatus) MOZ_OVERRIDE
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include "BluetoothHALHelpers.h"
|
#include "BluetoothHALHelpers.h"
|
||||||
|
#include "mozilla/FileUtils.h"
|
||||||
#include "nsClassHashtable.h"
|
#include "nsClassHashtable.h"
|
||||||
#include "nsXULAppAPI.h"
|
#include "nsXULAppAPI.h"
|
||||||
|
|
||||||
@ -485,6 +486,10 @@ public:
|
|||||||
|
|
||||||
void Proceed(BluetoothStatus aStatus) MOZ_OVERRIDE
|
void Proceed(BluetoothStatus aStatus) MOZ_OVERRIDE
|
||||||
{
|
{
|
||||||
|
if ((aStatus != STATUS_SUCCESS) && (GetClientFd() != -1)) {
|
||||||
|
mozilla::ScopedClose(GetClientFd()); // Close received socket fd on error
|
||||||
|
}
|
||||||
|
|
||||||
DispatchBluetoothSocketHALResult(
|
DispatchBluetoothSocketHALResult(
|
||||||
GetResultHandler(), &BluetoothSocketResultHandler::Accept,
|
GetResultHandler(), &BluetoothSocketResultHandler::Accept,
|
||||||
GetClientFd(), GetBdAddress(), GetConnectionStatus(), aStatus);
|
GetClientFd(), GetBdAddress(), GetConnectionStatus(), aStatus);
|
||||||
|
@ -363,6 +363,8 @@ public:
|
|||||||
{
|
{
|
||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
|
|
||||||
|
mozilla::ScopedClose fd(aFd); // Close received socket fd on error
|
||||||
|
|
||||||
if (mImpl->IsShutdownOnMainThread()) {
|
if (mImpl->IsShutdownOnMainThread()) {
|
||||||
BT_LOGD("mConsumer is null, aborting receive!");
|
BT_LOGD("mConsumer is null, aborting receive!");
|
||||||
return;
|
return;
|
||||||
@ -374,7 +376,8 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
mImpl->mConsumer->SetAddress(aBdAddress);
|
mImpl->mConsumer->SetAddress(aBdAddress);
|
||||||
XRE_GetIOMessageLoop()->PostTask(FROM_HERE, new AcceptTask(mImpl, aFd));
|
XRE_GetIOMessageLoop()->PostTask(FROM_HERE,
|
||||||
|
new AcceptTask(mImpl, fd.forget()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnError(BluetoothStatus aStatus) MOZ_OVERRIDE
|
void OnError(BluetoothStatus aStatus) MOZ_OVERRIDE
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "BluetoothHALHelpers.h"
|
#include "BluetoothHALHelpers.h"
|
||||||
|
#include "mozilla/FileUtils.h"
|
||||||
#include "nsClassHashtable.h"
|
#include "nsClassHashtable.h"
|
||||||
#include "nsXULAppAPI.h"
|
#include "nsXULAppAPI.h"
|
||||||
|
|
||||||
@ -485,6 +486,10 @@ public:
|
|||||||
|
|
||||||
void Proceed(BluetoothStatus aStatus) MOZ_OVERRIDE
|
void Proceed(BluetoothStatus aStatus) MOZ_OVERRIDE
|
||||||
{
|
{
|
||||||
|
if ((aStatus != STATUS_SUCCESS) && (GetClientFd() != -1)) {
|
||||||
|
mozilla::ScopedClose(GetClientFd()); // Close received socket fd on error
|
||||||
|
}
|
||||||
|
|
||||||
DispatchBluetoothSocketHALResult(
|
DispatchBluetoothSocketHALResult(
|
||||||
GetResultHandler(), &BluetoothSocketResultHandler::Accept,
|
GetResultHandler(), &BluetoothSocketResultHandler::Accept,
|
||||||
GetClientFd(), GetBdAddress(), GetConnectionStatus(), aStatus);
|
GetClientFd(), GetBdAddress(), GetConnectionStatus(), aStatus);
|
||||||
|
Loading…
Reference in New Issue
Block a user