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

Commit 04110e30 authored by Elliott Hughes's avatar Elliott Hughes Committed by Automerger Merge Worker
Browse files

Merge "Tell bionic when we overwrite argv[0]." into rvc-dev am: a7e0ff89 am: 490cd4e2

Change-Id: I3bc5870e75676d32a126b22a36681a9a88e3a096
parents 3a9d70b0 490cd4e2
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -301,6 +301,8 @@ AndroidRuntime::~AndroidRuntime()
}
}


void AndroidRuntime::setArgv0(const char* argv0, bool setProcName) {
void AndroidRuntime::setArgv0(const char* argv0, bool setProcName) {
    // Set the kernel's task name, for as much of the name as we can fit.
    // The kernel's TASK_COMM_LEN minus one for the terminating NUL == 15.
    if (setProcName) {
    if (setProcName) {
        int len = strlen(argv0);
        int len = strlen(argv0);
        if (len < 15) {
        if (len < 15) {
@@ -309,8 +311,14 @@ void AndroidRuntime::setArgv0(const char* argv0, bool setProcName) {
            pthread_setname_np(pthread_self(), argv0 + len - 15);
            pthread_setname_np(pthread_self(), argv0 + len - 15);
        }
        }
    }
    }

    // Directly change the memory pointed to by argv[0].
    memset(mArgBlockStart, 0, mArgBlockLength);
    memset(mArgBlockStart, 0, mArgBlockLength);
    strlcpy(mArgBlockStart, argv0, mArgBlockLength);
    strlcpy(mArgBlockStart, argv0, mArgBlockLength);

    // Let bionic know that we just did that, because __progname points
    // into argv[0] (https://issuetracker.google.com/152893281).
    setprogname(mArgBlockStart);
}
}


status_t AndroidRuntime::callMain(const String8& className, jclass clazz,
status_t AndroidRuntime::callMain(const String8& className, jclass clazz,