Loading logd/LogAudit.cpp +15 −8 Original line number Diff line number Diff line Loading @@ -155,13 +155,15 @@ int LogAudit::logPrint(const char *fmt, ...) { event->length = htole32(l); memcpy(event->data, str, l); logbuf->log(LOG_ID_EVENTS, now, uid, pid, tid, rc = logbuf->log(LOG_ID_EVENTS, now, uid, pid, tid, reinterpret_cast<char *>(event), (n <= USHRT_MAX) ? (unsigned short) n : USHRT_MAX); free(event); if (rc >= 0) { notify = true; } } // log to main Loading Loading @@ -197,17 +199,22 @@ int LogAudit::logPrint(const char *fmt, ...) { strncpy(newstr + 1 + l, str, estr - str); strcpy(newstr + 1 + l + (estr - str), ecomm); logbuf->log(LOG_ID_MAIN, now, uid, pid, tid, newstr, rc = logbuf->log(LOG_ID_MAIN, now, uid, pid, tid, newstr, (n <= USHRT_MAX) ? (unsigned short) n : USHRT_MAX); free(newstr); if (rc >= 0) { notify = true; } } free(str); if (notify) { reader->notifyNewLog(); if (rc < 0) { rc = n; } } return rc; Loading @@ -216,7 +223,7 @@ int LogAudit::logPrint(const char *fmt, ...) { int LogAudit::log(char *buf) { char *audit = strstr(buf, " audit("); if (!audit) { return 0; return -EXDEV; } *audit = '\0'; Loading logd/LogBuffer.cpp +7 −4 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ #include <ctype.h> #include <errno.h> #include <stdio.h> #include <string.h> #include <sys/user.h> Loading Loading @@ -132,11 +133,11 @@ LogBuffer::LogBuffer(LastLogTimes *times) init(); } void LogBuffer::log(log_id_t log_id, log_time realtime, int LogBuffer::log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, pid_t tid, const char *msg, unsigned short len) { if ((log_id >= LOG_ID_MAX) || (log_id < 0)) { return; return -EINVAL; } LogBufferElement *elem = new LogBufferElement(log_id, realtime, uid, pid, tid, msg, len); Loading Loading @@ -193,6 +194,8 @@ void LogBuffer::log(log_id_t log_id, log_time realtime, stats.add(elem); maybePrune(log_id); pthread_mutex_unlock(&mLogElementsLock); return len; } // If we're using more than 256K of memory for log entries, prune Loading logd/LogBuffer.h +3 −3 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ public: LogBuffer(LastLogTimes *times); void init(); void log(log_id_t log_id, log_time realtime, int log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, pid_t tid, const char *msg, unsigned short len); uint64_t flushTo(SocketClient *writer, const uint64_t start, Loading logd/LogListener.cpp +5 −4 Original line number Diff line number Diff line Loading @@ -98,10 +98,11 @@ bool LogListener::onDataAvailable(SocketClient *cli) { // NB: hdr.msg_flags & MSG_TRUNC is not tested, silently passing a // truncated message to the logs. logbuf->log((log_id_t)header->id, header->realtime, if (logbuf->log((log_id_t)header->id, header->realtime, cred->uid, cred->pid, header->tid, msg, ((size_t) n <= USHRT_MAX) ? (unsigned short) n : USHRT_MAX); ((size_t) n <= USHRT_MAX) ? (unsigned short) n : USHRT_MAX) >= 0) { reader->notifyNewLog(); } return true; } Loading logd/main.cpp +5 −5 Original line number Diff line number Diff line Loading @@ -367,12 +367,12 @@ int main(int argc, char *argv[]) { int rc = klogctl(KLOG_READ_ALL, buf, len); if (rc >= 0) { buf[len - 1] = '\0'; for(char *ptr, *tok = buf; (rc >= 0) && ((tok = strtok_r(tok, "\r\n", &ptr))); tok = NULL) { rc = al->log(tok); for (char *ptr, *tok = buf; (tok = strtok_r(tok, "\r\n", &ptr)); tok = NULL) { al->log(tok); } } } Loading Loading
logd/LogAudit.cpp +15 −8 Original line number Diff line number Diff line Loading @@ -155,13 +155,15 @@ int LogAudit::logPrint(const char *fmt, ...) { event->length = htole32(l); memcpy(event->data, str, l); logbuf->log(LOG_ID_EVENTS, now, uid, pid, tid, rc = logbuf->log(LOG_ID_EVENTS, now, uid, pid, tid, reinterpret_cast<char *>(event), (n <= USHRT_MAX) ? (unsigned short) n : USHRT_MAX); free(event); if (rc >= 0) { notify = true; } } // log to main Loading Loading @@ -197,17 +199,22 @@ int LogAudit::logPrint(const char *fmt, ...) { strncpy(newstr + 1 + l, str, estr - str); strcpy(newstr + 1 + l + (estr - str), ecomm); logbuf->log(LOG_ID_MAIN, now, uid, pid, tid, newstr, rc = logbuf->log(LOG_ID_MAIN, now, uid, pid, tid, newstr, (n <= USHRT_MAX) ? (unsigned short) n : USHRT_MAX); free(newstr); if (rc >= 0) { notify = true; } } free(str); if (notify) { reader->notifyNewLog(); if (rc < 0) { rc = n; } } return rc; Loading @@ -216,7 +223,7 @@ int LogAudit::logPrint(const char *fmt, ...) { int LogAudit::log(char *buf) { char *audit = strstr(buf, " audit("); if (!audit) { return 0; return -EXDEV; } *audit = '\0'; Loading
logd/LogBuffer.cpp +7 −4 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ #include <ctype.h> #include <errno.h> #include <stdio.h> #include <string.h> #include <sys/user.h> Loading Loading @@ -132,11 +133,11 @@ LogBuffer::LogBuffer(LastLogTimes *times) init(); } void LogBuffer::log(log_id_t log_id, log_time realtime, int LogBuffer::log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, pid_t tid, const char *msg, unsigned short len) { if ((log_id >= LOG_ID_MAX) || (log_id < 0)) { return; return -EINVAL; } LogBufferElement *elem = new LogBufferElement(log_id, realtime, uid, pid, tid, msg, len); Loading Loading @@ -193,6 +194,8 @@ void LogBuffer::log(log_id_t log_id, log_time realtime, stats.add(elem); maybePrune(log_id); pthread_mutex_unlock(&mLogElementsLock); return len; } // If we're using more than 256K of memory for log entries, prune Loading
logd/LogBuffer.h +3 −3 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ public: LogBuffer(LastLogTimes *times); void init(); void log(log_id_t log_id, log_time realtime, int log(log_id_t log_id, log_time realtime, uid_t uid, pid_t pid, pid_t tid, const char *msg, unsigned short len); uint64_t flushTo(SocketClient *writer, const uint64_t start, Loading
logd/LogListener.cpp +5 −4 Original line number Diff line number Diff line Loading @@ -98,10 +98,11 @@ bool LogListener::onDataAvailable(SocketClient *cli) { // NB: hdr.msg_flags & MSG_TRUNC is not tested, silently passing a // truncated message to the logs. logbuf->log((log_id_t)header->id, header->realtime, if (logbuf->log((log_id_t)header->id, header->realtime, cred->uid, cred->pid, header->tid, msg, ((size_t) n <= USHRT_MAX) ? (unsigned short) n : USHRT_MAX); ((size_t) n <= USHRT_MAX) ? (unsigned short) n : USHRT_MAX) >= 0) { reader->notifyNewLog(); } return true; } Loading
logd/main.cpp +5 −5 Original line number Diff line number Diff line Loading @@ -367,12 +367,12 @@ int main(int argc, char *argv[]) { int rc = klogctl(KLOG_READ_ALL, buf, len); if (rc >= 0) { buf[len - 1] = '\0'; for(char *ptr, *tok = buf; (rc >= 0) && ((tok = strtok_r(tok, "\r\n", &ptr))); tok = NULL) { rc = al->log(tok); for (char *ptr, *tok = buf; (tok = strtok_r(tok, "\r\n", &ptr)); tok = NULL) { al->log(tok); } } } Loading