diff --git a/base/file.cpp b/base/file.cpp index 6321fc624..97cc2b27f 100644 --- a/base/file.cpp +++ b/base/file.cpp @@ -225,7 +225,7 @@ bool ReadFdToString(borrowed_fd fd, std::string* content) { content->reserve(sb.st_size); } - char buf[BUFSIZ]; + char buf[BUFSIZ] __attribute__((__uninitialized__)); ssize_t n; while ((n = TEMP_FAILURE_RETRY(read(fd.get(), &buf[0], sizeof(buf)))) > 0) { content->append(buf, n); diff --git a/base/logging.cpp b/base/logging.cpp index 6e9c67fc4..5bd21da66 100644 --- a/base/logging.cpp +++ b/base/logging.cpp @@ -260,7 +260,7 @@ static void KernelLogLine(const char* msg, int length, android::base::LogSeverit // The kernel's printk buffer is only 1024 bytes. // TODO: should we automatically break up long lines into multiple lines? // Or we could log but with something like "..." at the end? - char buf[1024]; + char buf[1024] __attribute__((__uninitialized__)); size_t size = snprintf(buf, sizeof(buf), "<%d>%s: %.*s\n", level, tag, length, msg); if (size > sizeof(buf)) { size = snprintf(buf, sizeof(buf), "<%d>%s: %zu-byte message too long for printk\n", diff --git a/base/stringprintf.cpp b/base/stringprintf.cpp index 78e1e8d14..e83ab1316 100644 --- a/base/stringprintf.cpp +++ b/base/stringprintf.cpp @@ -25,7 +25,7 @@ namespace base { void StringAppendV(std::string* dst, const char* format, va_list ap) { // First try with a small fixed size buffer - char space[1024]; + char space[1024] __attribute__((__uninitialized__)); // It's possible for methods that use a va_list to invalidate // the data in it upon use. The fix is to make a copy