diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/service/hid/irs.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/nfp/nfp.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/bsd.cpp | 2 | ||||
| -rw-r--r-- | src/core/internal_network/network.cpp | 12 | ||||
| -rw-r--r-- | src/core/internal_network/sockets.h | 11 | ||||
| -rw-r--r-- | src/core/loader/loader.cpp | 4 |
6 files changed, 26 insertions, 10 deletions
diff --git a/src/core/hle/service/hid/irs.cpp b/src/core/hle/service/hid/irs.cpp index c4b44cbf9..6a3453457 100644 --- a/src/core/hle/service/hid/irs.cpp +++ b/src/core/hle/service/hid/irs.cpp | |||
| @@ -542,7 +542,8 @@ Result IRS::IsIrCameraHandleValid(const Core::IrSensor::IrCameraHandle& camera_h | |||
| 542 | 542 | ||
| 543 | Core::IrSensor::DeviceFormat& IRS::GetIrCameraSharedMemoryDeviceEntry( | 543 | Core::IrSensor::DeviceFormat& IRS::GetIrCameraSharedMemoryDeviceEntry( |
| 544 | const Core::IrSensor::IrCameraHandle& camera_handle) { | 544 | const Core::IrSensor::IrCameraHandle& camera_handle) { |
| 545 | ASSERT_MSG(sizeof(StatusManager::device) > camera_handle.npad_id, "invalid npad_id"); | 545 | const auto npad_id_max_index = static_cast<u8>(sizeof(StatusManager::device)); |
| 546 | ASSERT_MSG(camera_handle.npad_id < npad_id_max_index, "invalid npad_id"); | ||
| 546 | return shared_memory->device[camera_handle.npad_id]; | 547 | return shared_memory->device[camera_handle.npad_id]; |
| 547 | } | 548 | } |
| 548 | 549 | ||
diff --git a/src/core/hle/service/nfp/nfp.cpp b/src/core/hle/service/nfp/nfp.cpp index e0ed3f771..037b86653 100644 --- a/src/core/hle/service/nfp/nfp.cpp +++ b/src/core/hle/service/nfp/nfp.cpp | |||
| @@ -800,12 +800,12 @@ Result Module::Interface::Flush() { | |||
| 800 | 800 | ||
| 801 | // Return to the start of the file | 801 | // Return to the start of the file |
| 802 | if (!amiibo_file.Seek(0)) { | 802 | if (!amiibo_file.Seek(0)) { |
| 803 | LOG_ERROR(Service_NFP, "Error writting to file"); | 803 | LOG_ERROR(Service_NFP, "Error writing to file"); |
| 804 | return ErrCodes::WriteAmiiboFailed; | 804 | return ErrCodes::WriteAmiiboFailed; |
| 805 | } | 805 | } |
| 806 | 806 | ||
| 807 | if (!amiibo_file.Write(encrypted_tag_data)) { | 807 | if (!amiibo_file.Write(encrypted_tag_data)) { |
| 808 | LOG_ERROR(Service_NFP, "Error writting to file"); | 808 | LOG_ERROR(Service_NFP, "Error writing to file"); |
| 809 | return ErrCodes::WriteAmiiboFailed; | 809 | return ErrCodes::WriteAmiiboFailed; |
| 810 | } | 810 | } |
| 811 | 811 | ||
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index cc679cc81..9e94a462f 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp | |||
| @@ -929,7 +929,7 @@ BSD::BSD(Core::System& system_, const char* name) | |||
| 929 | proxy_packet_received = room_member->BindOnProxyPacketReceived( | 929 | proxy_packet_received = room_member->BindOnProxyPacketReceived( |
| 930 | [this](const Network::ProxyPacket& packet) { OnProxyPacketReceived(packet); }); | 930 | [this](const Network::ProxyPacket& packet) { OnProxyPacketReceived(packet); }); |
| 931 | } else { | 931 | } else { |
| 932 | LOG_ERROR(Service, "Network isn't initalized"); | 932 | LOG_ERROR(Service, "Network isn't initialized"); |
| 933 | } | 933 | } |
| 934 | } | 934 | } |
| 935 | 935 | ||
diff --git a/src/core/internal_network/network.cpp b/src/core/internal_network/network.cpp index cdf38a2a4..447fbffaa 100644 --- a/src/core/internal_network/network.cpp +++ b/src/core/internal_network/network.cpp | |||
| @@ -364,7 +364,7 @@ std::pair<s32, Errno> Poll(std::vector<PollFD>& pollfds, s32 timeout) { | |||
| 364 | std::vector<WSAPOLLFD> host_pollfds(pollfds.size()); | 364 | std::vector<WSAPOLLFD> host_pollfds(pollfds.size()); |
| 365 | std::transform(pollfds.begin(), pollfds.end(), host_pollfds.begin(), [](PollFD fd) { | 365 | std::transform(pollfds.begin(), pollfds.end(), host_pollfds.begin(), [](PollFD fd) { |
| 366 | WSAPOLLFD result; | 366 | WSAPOLLFD result; |
| 367 | result.fd = fd.socket->fd; | 367 | result.fd = fd.socket->GetFD(); |
| 368 | result.events = TranslatePollEvents(fd.events); | 368 | result.events = TranslatePollEvents(fd.events); |
| 369 | result.revents = 0; | 369 | result.revents = 0; |
| 370 | return result; | 370 | return result; |
| @@ -430,12 +430,12 @@ std::pair<SocketBase::AcceptResult, Errno> Socket::Accept() { | |||
| 430 | return {AcceptResult{}, GetAndLogLastError()}; | 430 | return {AcceptResult{}, GetAndLogLastError()}; |
| 431 | } | 431 | } |
| 432 | 432 | ||
| 433 | AcceptResult result; | ||
| 434 | result.socket = std::make_unique<Socket>(); | ||
| 435 | result.socket->fd = new_socket; | ||
| 436 | |||
| 437 | ASSERT(addrlen == sizeof(sockaddr_in)); | 433 | ASSERT(addrlen == sizeof(sockaddr_in)); |
| 438 | result.sockaddr_in = TranslateToSockAddrIn(addr); | 434 | |
| 435 | AcceptResult result{ | ||
| 436 | .socket = std::make_unique<Socket>(new_socket), | ||
| 437 | .sockaddr_in = TranslateToSockAddrIn(addr), | ||
| 438 | }; | ||
| 439 | 439 | ||
| 440 | return {std::move(result), Errno::SUCCESS}; | 440 | return {std::move(result), Errno::SUCCESS}; |
| 441 | } | 441 | } |
diff --git a/src/core/internal_network/sockets.h b/src/core/internal_network/sockets.h index a70429b19..2e328c645 100644 --- a/src/core/internal_network/sockets.h +++ b/src/core/internal_network/sockets.h | |||
| @@ -32,6 +32,10 @@ public: | |||
| 32 | std::unique_ptr<SocketBase> socket; | 32 | std::unique_ptr<SocketBase> socket; |
| 33 | SockAddrIn sockaddr_in; | 33 | SockAddrIn sockaddr_in; |
| 34 | }; | 34 | }; |
| 35 | |||
| 36 | SocketBase() = default; | ||
| 37 | explicit SocketBase(SOCKET fd_) : fd{fd_} {} | ||
| 38 | |||
| 35 | virtual ~SocketBase() = default; | 39 | virtual ~SocketBase() = default; |
| 36 | 40 | ||
| 37 | virtual SocketBase& operator=(const SocketBase&) = delete; | 41 | virtual SocketBase& operator=(const SocketBase&) = delete; |
| @@ -89,12 +93,19 @@ public: | |||
| 89 | 93 | ||
| 90 | virtual void HandleProxyPacket(const ProxyPacket& packet) = 0; | 94 | virtual void HandleProxyPacket(const ProxyPacket& packet) = 0; |
| 91 | 95 | ||
| 96 | [[nodiscard]] SOCKET GetFD() const { | ||
| 97 | return fd; | ||
| 98 | } | ||
| 99 | |||
| 100 | protected: | ||
| 92 | SOCKET fd = INVALID_SOCKET; | 101 | SOCKET fd = INVALID_SOCKET; |
| 93 | }; | 102 | }; |
| 94 | 103 | ||
| 95 | class Socket : public SocketBase { | 104 | class Socket : public SocketBase { |
| 96 | public: | 105 | public: |
| 97 | Socket() = default; | 106 | Socket() = default; |
| 107 | explicit Socket(SOCKET fd_) : SocketBase{fd_} {} | ||
| 108 | |||
| 98 | ~Socket() override; | 109 | ~Socket() override; |
| 99 | 110 | ||
| 100 | Socket(const Socket&) = delete; | 111 | Socket(const Socket&) = delete; |
diff --git a/src/core/loader/loader.cpp b/src/core/loader/loader.cpp index 104d16efa..f24474ed8 100644 --- a/src/core/loader/loader.cpp +++ b/src/core/loader/loader.cpp | |||
| @@ -244,6 +244,10 @@ static std::unique_ptr<AppLoader> GetFileLoader(Core::System& system, FileSys::V | |||
| 244 | 244 | ||
| 245 | std::unique_ptr<AppLoader> GetLoader(Core::System& system, FileSys::VirtualFile file, | 245 | std::unique_ptr<AppLoader> GetLoader(Core::System& system, FileSys::VirtualFile file, |
| 246 | u64 program_id, std::size_t program_index) { | 246 | u64 program_id, std::size_t program_index) { |
| 247 | if (!file) { | ||
| 248 | return nullptr; | ||
| 249 | } | ||
| 250 | |||
| 247 | FileType type = IdentifyFile(file); | 251 | FileType type = IdentifyFile(file); |
| 248 | const FileType filename_type = GuessFromFilename(file->GetName()); | 252 | const FileType filename_type = GuessFromFilename(file->GetName()); |
| 249 | 253 | ||