am ecb5dd69: Merge "Fix undefined args access for x86_64."

* commit 'ecb5dd697ca72828079bf40f932abf9f9ee7b7db':
  Fix undefined args access for x86_64.
This commit is contained in:
Elliott Hughes 2014-02-26 21:34:17 +00:00 committed by Android Git Automerger
commit e2c0bc4095

View file

@ -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);