rtc_base: fix -Wformat-nonliteral warning

This fixes  -Wformat-nonliteral when building with glibc 2.27

BUG=chromium:894859
TEST=emerge-samus webrtc-apm with glibc 2.27

Change-Id: I9db84c2146b2bb366e07d9d54546d91bf3a6713d
Reviewed-on: https://chromium-review.googlesource.com/1277980
Commit-Ready: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/rtc_base/stringutils.h b/rtc_base/stringutils.h
index d92ba02..7073df1 100644
--- a/rtc_base/stringutils.h
+++ b/rtc_base/stringutils.h
@@ -173,9 +173,10 @@
 // Some compilers (clang specifically) require vsprintfn be defined before
 // sprintfn.
 template <class CTYPE>
+__attribute__ ((__format__ (__printf__, 3, 0)))
 size_t vsprintfn(CTYPE* buffer,
                  size_t buflen,
-                 const CTYPE* format,
+                 const char* format,
                  va_list args) {
   int len = vsnprintf(buffer, buflen, format, args);
   if ((len < 0) || (static_cast<size_t>(len) >= buflen)) {
@@ -186,9 +187,8 @@
 }
 
 template <class CTYPE>
-size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...);
-template <class CTYPE>
-size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...) {
+__attribute__ ((__format__ (__printf__, 3, 0)))
+size_t sprintfn(CTYPE* buffer, size_t buflen, const char* format, ...) {
   va_list args;
   va_start(args, format);
   size_t len = vsprintfn(buffer, buflen, format, args);