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

Commit ecb5dd69 authored by Elliott Hughes's avatar Elliott Hughes Committed by Gerrit Code Review
Browse files

Merge "Fix undefined args access for x86_64."

parents 431735f0 fff9d11b
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -323,8 +323,17 @@ status_t String8::appendFormat(const char* fmt, ...)

status_t String8::appendFormatV(const char* fmt, va_list args)
{
    int result = NO_ERROR;
    int n = vsnprintf(NULL, 0, fmt, args);
    int n, result = NO_ERROR;
    va_list tmp_args;

    /* args is undefined after vsnprintf.
     * So we need a copy here to avoid the
     * second vsnprintf access undefined args.
     */
    va_copy(tmp_args, args);
    n = vsnprintf(NULL, 0, fmt, tmp_args);
    va_end(tmp_args);

    if (n != 0) {
        size_t oldLength = length();
        char* buf = lockBuffer(oldLength + n);