diff options
author | Mark Salyzyn <salyzyn@google.com> | 2015-03-03 16:21:27 -0800 |
---|---|---|
committer | Mark Salyzyn <salyzyn@google.com> | 2015-03-04 13:21:41 -0800 |
commit | 29eb57066c37bf667a56bb4a7143b50664d5eb44 (patch) | |
tree | af2101fdf3c2037ad9625f50b029b3a994b84bf5 /logd/LogAudit.cpp | |
parent | 4487c605eaeea2b85c8511fe915a286c3aaf4da4 (diff) | |
download | system_core-29eb57066c37bf667a56bb4a7143b50664d5eb44.zip system_core-29eb57066c37bf667a56bb4a7143b50664d5eb44.tar.gz system_core-29eb57066c37bf667a56bb4a7143b50664d5eb44.tar.bz2 |
logd: use <endian.h>
Change-Id: Iba843c054ea4fbe1a26c7821b5613fdb5e8001a1
Diffstat (limited to 'logd/LogAudit.cpp')
-rw-r--r-- | logd/LogAudit.cpp | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/logd/LogAudit.cpp b/logd/LogAudit.cpp index c7c0249..af0b775 100644 --- a/logd/LogAudit.cpp +++ b/logd/LogAudit.cpp @@ -15,6 +15,7 @@ */ #include <ctype.h> +#include <endian.h> #include <errno.h> #include <limits.h> #include <stdarg.h> @@ -23,6 +24,8 @@ #include <sys/uio.h> #include <syslog.h> +#include <private/android_logger.h> + #include "libaudit.h" #include "LogAudit.h" @@ -138,29 +141,23 @@ int LogAudit::logPrint(const char *fmt, ...) { // log to events size_t l = strlen(str); - size_t n = l + sizeof(uint32_t) + sizeof(uint8_t) + sizeof(uint32_t); + size_t n = l + sizeof(android_log_event_string_t); bool notify = false; - char *newstr = reinterpret_cast<char *>(malloc(n)); - if (!newstr) { + android_log_event_string_t *event = static_cast<android_log_event_string_t *>(malloc(n)); + if (!event) { rc = -ENOMEM; } else { - cp = newstr; - *cp++ = AUDITD_LOG_TAG & 0xFF; - *cp++ = (AUDITD_LOG_TAG >> 8) & 0xFF; - *cp++ = (AUDITD_LOG_TAG >> 16) & 0xFF; - *cp++ = (AUDITD_LOG_TAG >> 24) & 0xFF; - *cp++ = EVENT_TYPE_STRING; - *cp++ = l & 0xFF; - *cp++ = (l >> 8) & 0xFF; - *cp++ = (l >> 16) & 0xFF; - *cp++ = (l >> 24) & 0xFF; - memcpy(cp, str, l); - - logbuf->log(LOG_ID_EVENTS, now, uid, pid, tid, newstr, + event->header.tag = htole32(AUDITD_LOG_TAG); + event->payload.type = EVENT_TYPE_STRING; + event->payload.length = htole32(l); + memcpy(event->payload.data, str, l); + + logbuf->log(LOG_ID_EVENTS, now, uid, pid, tid, + reinterpret_cast<char *>(event), (n <= USHRT_MAX) ? (unsigned short) n : USHRT_MAX); - free(newstr); + free(event); notify = true; } @@ -190,7 +187,7 @@ int LogAudit::logPrint(const char *fmt, ...) { } n = (estr - str) + strlen(ecomm) + l + 2; - newstr = reinterpret_cast<char *>(malloc(n)); + char *newstr = static_cast<char *>(malloc(n)); if (!newstr) { rc = -ENOMEM; } else { |