stun: Use sprintf() instead of snprintf() to support VS 2010
authorPhilip Withnall <philip.withnall@collabora.co.uk>
Thu, 30 Oct 2014 09:35:16 +0000 (09:35 +0000)
committerPhilip Withnall <philip.withnall@collabora.co.uk>
Wed, 11 Feb 2015 12:33:44 +0000 (12:33 +0000)
Visual Studio 2010 still doesn’t support C99, and snprintf() is a C99
function, so compilation fails with:
    error: C3861: 'snprintf': identifier not found

Use sprintf() instead, which is C89 and thus supported. This does not
make the code unsafe, as the format specifier is constrained to two
characters (+ trailing nul), which are guaranteed to fit in the array
bounds.

Reported on the mailing list:
http://lists.freedesktop.org/archives/nice/2014-October/000978.html

stun/debug.c

index 598094d..f3a55bb 100644 (file)
@@ -89,7 +89,7 @@ void stun_debug_bytes (const char *prefix, const void *data, size_t len)
   strcpy (bytes + prefix_len, "0x");
 
   for (i = 0; i < len; i++)
-    snprintf (bytes + prefix_len + 2 + (i * 2), 3, "%02x", ((const unsigned char *)data)[i]);
+    sprintf (bytes + prefix_len + 2 + (i * 2), "%02x", ((const unsigned char *)data)[i]);
 
   stun_debug ("%s", bytes);
 }