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

Commit f35a01f0 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "libbinder_ndk: validate the interface before using" am: e08a3fd6

parents 3627bf89 e08a3fd6
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line 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,
binder_status_t ICInterface::ICInterfaceData::onDump(AIBinder* binder, int fd, const char** args,
                                                     uint32_t numArgs) {
                                                     uint32_t numArgs) {
    std::shared_ptr<ICInterface> interface = getInterface(binder);
    std::shared_ptr<ICInterface> interface = getInterface(binder);
    if (interface != nullptr) {
        return interface->dump(fd, args, numArgs);
        return interface->dump(fd, args, numArgs);
    }
    }
    return STATUS_DEAD_OBJECT;
}


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


template <typename INTERFACE>
template <typename INTERFACE>