{
char formatted_buf[LAUNCHPAD_LOG_MAX_STRING_SIZE];
va_list ap;
+ int ret;
if (!__logger)
return 0;
va_start(ap, format);
- vsnprintf(formatted_buf, sizeof(formatted_buf), format, ap);
+ ret = vsnprintf(formatted_buf, sizeof(formatted_buf), format, ap);
va_end(ap);
+ if (ret < 0 || ret >= sizeof(formatted_buf)) {
+ _E("vsnprintf() is failed. result(%d)", ret);
+ return -1;
+ }
return _logger_print(__logger, tag, formatted_buf);
}
ssize_t ret;
va_list ap;
off_t offset;
+ int bytes;
if (!handle || !tag || !format) {
_E("Invalid parameter");
_E("lseek() is failed. errno(%d)", errno);
va_start(ap, format);
- vsnprintf(format_buf, sizeof(format_buf), format, ap);
+ bytes = vsnprintf(format_buf, sizeof(format_buf), format, ap);
va_end(ap);
+ if (bytes < 0 || bytes >= sizeof(format_buf)) {
+ _E("vsnprintf() is failed. result(%d)", bytes);
+ return -1;
+ }
snprintf(buf, sizeof(buf),
"[%6d] %04d-%02d-%02d %02d:%02d:%02d %-16s %-100s\n",
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) {
{
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));
}