ART: Change sprintf to snprintf

Use of sprintf is discouraged. Change to snprintf in utils.cc. Avoids
a warning with GCC 4.9.

Change-Id: I03cc13a0f00dff07e8b775584ece9c4e4a64e590
diff --git a/runtime/utils.cc b/runtime/utils.cc
index c52549e..d038571 100644
--- a/runtime/utils.cc
+++ b/runtime/utils.cc
@@ -534,15 +534,17 @@
     return StringPrintf("%" PRIu64 "%s", whole_part, unit);
   } else {
     static constexpr size_t kMaxDigits = 30;
+    size_t avail_digits = kMaxDigits;
     char fraction_buffer[kMaxDigits];
     char* ptr = fraction_buffer;
     uint64_t multiplier = 10;
     // This infinite loops if fractional part is 0.
-    while (fractional_part * multiplier < divisor) {
+    while (avail_digits > 1 && fractional_part * multiplier < divisor) {
       multiplier *= 10;
       *ptr++ = '0';
+      avail_digits--;
     }
-    sprintf(ptr, "%" PRIu64, fractional_part);
+    snprintf(ptr, avail_digits, "%" PRIu64, fractional_part);
     fraction_buffer[std::min(kMaxDigits - 1, max_fraction_digits)] = '\0';
     return StringPrintf("%" PRIu64 ".%s%s", whole_part, fraction_buffer, unit);
   }