NetFSServer: Forward errors and fix use-after-free.

At least right now, the constructor of ServerInfoSender can only fail
because of OOM.

Signed-off-by: Augustin Cavalier <[email protected]>
Fixes #11716. One minor tweak by me from the original patch
(change "!sender" to "sender == NULL").
This commit is contained in:
Timothy Gu
2015-06-23 11:58:23 -04:00
committed by Augustin Cavalier
parent 4a35186ac2
commit 2201ddd6d0
@@ -800,7 +800,7 @@ NetFSServer::_LoadSecurityContext(SecurityContext** _securityContext)
// load the fallback settings, if present
BPath path;
DriverSettings settings;
if (_GetSettingsDirPath(&path, false) == B_OK
&& path.Append(kFallbackSettingsFileName) == B_OK
&& settings.Load(path.Path()) == B_OK) {
@@ -1283,9 +1283,15 @@ NetFSServer::_ServerInfoConnectionListener()
// create a server info sender thread
ServerInfoSender* sender = new(std::nothrow) ServerInfoSender(fd, info);
if (!sender || sender->Init() != B_OK) {
if (sender == NULL) {
closesocket(fd);
delete sender;
return B_NO_MEMORY;
}
if ((error = sender->Init()) != B_OK) {
closesocket(fd);
delete sender;
return error;
}
taskManager.RunTask(sender);
}