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

Commit e2176118 authored by Josh Gao's avatar Josh Gao
Browse files

adb: add a way to make the server intentionally leak.

Add a way to test LeakSanitizer with the server by adding an
environment variable that intentionally leaks.

Test: ASAN_OPTIONS=detect_leaks=1:leak_check_at_exit=1 ADB_LEAK=1 adb server nodaemon
Change-Id: I7255d45335fa009dc9e5de99dff67af52bd70e06
parent c8a22bc1
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -75,6 +75,11 @@ void adb_server_cleanup() {
    usb_cleanup();
}

static void intentionally_leak() {
    void* p = ::operator new(1);
    LOG(INFO) << "leaking pointer " << p;
}

int adb_server_main(int is_daemon, const std::string& socket_spec, int ack_reply_fd) {
#if defined(_WIN32)
    // adb start-server starts us up with stdout and stderr hooked up to
@@ -98,6 +103,11 @@ int adb_server_main(int is_daemon, const std::string& socket_spec, int ack_reply
    });
#endif

    char* leak = getenv("ADB_LEAK");
    if (leak && strcmp(leak, "1") == 0) {
        intentionally_leak();
    }

    if (is_daemon) {
        close_stdin();
        setup_daemon_logging();