Minor changes on bcc command.

Use snprintf() instead of memcpy/strncpy sequence to improve the
readibility.

Change-Id: Ia119769c111a349d50dc0a9ee1e9c77cef8260a8
diff --git a/tools/bcc/main.cpp b/tools/bcc/main.cpp
index d05b951..d59f0e4 100644
--- a/tools/bcc/main.cpp
+++ b/tools/bcc/main.cpp
@@ -239,13 +239,16 @@
       // Construct output library path
       const size_t outDirLen = strlen(outDir);
       const size_t outFilenameLen = strlen(outFilename);
-      char *outLib = new char [outDirLen + 1 /* for '/' */ +
-                               outFilenameLen + 3 /* .so */ + 1];
+      const size_t outLibLen = outDirLen + 1 /* for '/' */ +
+                               outFilenameLen + 3 /* .so */;
+      char *outLib = new char [outLibLen + 1];
 
-      memcpy(outLib, outDir, outDirLen);
-      outLib[outDirLen] = '/';
-      memcpy(outLib + outDirLen + 1, outFilename, outFilenameLen);
-      strncpy(outLib + outDirLen + 1 + outFilenameLen, ".so", 3);
+      if (snprintf(outLib, outLibLen + 1, "%s/%s.so",
+                   outDir, outFilename) != static_cast<ssize_t>(outLibLen)) {
+        bccResult = -1;
+        errMsg = "failed to construct the path for output library.";
+        break;
+      }
 
       bccResult = bccPrepareSharedObject(script, outDir, outFilename, NULL,
                                          outLib, /* flags */0);