Check return value of vsnprintf()
[platform/core/appfw/launchpad.git] / src / lib / common / src / launchpad_common.c
index 05d8bef..6e370ef 100644 (file)
@@ -1441,16 +1441,20 @@ int _send_message_to_logger(const char *tag, const char *format, ...)
        int ret;
        int fd;
 
+       va_start(ap, format);
+       ret = vsnprintf(fmt, sizeof(fmt), format, ap);
+       va_end(ap);
+       if (ret < 0 || ret >= sizeof(fmt)) {
+               _E("vsnprintf() is failed. result(%d)", ret);
+               return -1;
+       }
+
        snprintf(buf, sizeof(buf), "%s/daemons/%u/.launchpad-logger-sock",
                        SOCKET_PATH, getuid());
        fd = __create_client_socket(buf);
        if (fd < 0)
                return -1;
 
-       va_start(ap, format);
-       vsnprintf(fmt, sizeof(fmt), format, ap);
-       va_end(ap);
-
        snprintf(buf, sizeof(buf), "%s: %s", tag, fmt);
        ret = __send_raw(fd, 0, (unsigned char *)buf, strlen(buf) + 1);
        if (ret < 0) {
@@ -1467,10 +1471,15 @@ void _print_hwc_log(const char *format, ...)
 {
        char buf[1024];
        va_list ap;
+       int ret;
 
        va_start(ap, format);
-       vsnprintf(buf, sizeof(buf), format, ap);
+       ret = vsnprintf(buf, sizeof(buf), format, ap);
        va_end(ap);
+       if (ret < 0 || ret >= sizeof(buf)) {
+               _E("vsnprintf() is failed. result(%d)", ret);
+               return;
+       }
 
        prctl(PR_TASK_PERF_USER_TRACE, buf, strlen(buf));
 }