Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45089afd authored by Girish's avatar Girish
Browse files

libbinder_ndk: validate the interface before using

Bug: 251499799
Test: Manual
Change-Id: I77bace429c953f8c71721909035a01973303b083
parent 39983c6e
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -291,16 +291,22 @@ void ICInterface::ICInterfaceData::onDestroy(void* userData) {
binder_status_t ICInterface::ICInterfaceData::onDump(AIBinder* binder, int fd, const char** args,
                                                     uint32_t numArgs) {
    std::shared_ptr<ICInterface> interface = getInterface(binder);
    if (interface != nullptr) {
        return interface->dump(fd, args, numArgs);
    }
    return STATUS_DEAD_OBJECT;
}

#ifdef HAS_BINDER_SHELL_COMMAND
binder_status_t ICInterface::ICInterfaceData::handleShellCommand(AIBinder* binder, int in, int out,
                                                                 int err, const char** argv,
                                                                 uint32_t argc) {
    std::shared_ptr<ICInterface> interface = getInterface(binder);
    if (interface != nullptr) {
        return interface->handleShellCommand(in, out, err, argv, argc);
    }
    return STATUS_DEAD_OBJECT;
}
#endif

template <typename INTERFACE>