Skip newlines for SELinux logs am: 366f01fd64
Original change: https://android-review.googlesource.com/c/platform/external/selinux/+/2519660 Change-Id: Ifd367114af3b93af5a4cc5113205fbe4e3a71d64 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
273398f7b8
1 changed files with 45 additions and 47 deletions
|
@ -176,57 +176,55 @@ struct selabel_handle* selinux_android_keystore2_key_context_handle(void)
|
||||||
return context_handle(SELABEL_CTX_ANDROID_KEYSTORE2_KEY, &keystore2_context_paths, "keystore2");
|
return context_handle(SELABEL_CTX_ANDROID_KEYSTORE2_KEY, &keystore2_context_paths, "keystore2");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void __selinux_log_callback(bool add_to_event_log, int type, const char *fmt, va_list ap) {
|
||||||
|
int priority;
|
||||||
|
char *strp;
|
||||||
|
|
||||||
|
switch(type) {
|
||||||
|
case SELINUX_WARNING:
|
||||||
|
priority = ANDROID_LOG_WARN;
|
||||||
|
break;
|
||||||
|
case SELINUX_INFO:
|
||||||
|
priority = ANDROID_LOG_INFO;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
priority = ANDROID_LOG_ERROR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
int len = vasprintf(&strp, fmt, ap);
|
||||||
|
if (len < 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* libselinux log messages usually contain a new line character, while
|
||||||
|
* Android LOG() does not expect it. Remove it to avoid empty lines in
|
||||||
|
* the log buffers.
|
||||||
|
*/
|
||||||
|
if (len > 0 && strp[len - 1] == '\n') {
|
||||||
|
strp[len - 1] = '\0';
|
||||||
|
}
|
||||||
|
LOG_PRI(priority, "SELinux", "%s", strp);
|
||||||
|
if (add_to_event_log) {
|
||||||
|
LOG_EVENT_STRING(AUDITD_LOG_TAG, strp);
|
||||||
|
}
|
||||||
|
free(strp);
|
||||||
|
}
|
||||||
|
|
||||||
int selinux_log_callback(int type, const char *fmt, ...)
|
int selinux_log_callback(int type, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
int priority;
|
va_start(ap, fmt);
|
||||||
char *strp;
|
__selinux_log_callback(true, type, fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
switch(type) {
|
return 0;
|
||||||
case SELINUX_WARNING:
|
|
||||||
priority = ANDROID_LOG_WARN;
|
|
||||||
break;
|
|
||||||
case SELINUX_INFO:
|
|
||||||
priority = ANDROID_LOG_INFO;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
priority = ANDROID_LOG_ERROR;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
va_start(ap, fmt);
|
|
||||||
if (vasprintf(&strp, fmt, ap) != -1) {
|
|
||||||
LOG_PRI(priority, "SELinux", "%s", strp);
|
|
||||||
LOG_EVENT_STRING(AUDITD_LOG_TAG, strp);
|
|
||||||
free(strp);
|
|
||||||
}
|
|
||||||
va_end(ap);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int selinux_vendor_log_callback(int type, const char *fmt, ...)
|
int selinux_vendor_log_callback(int type, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
int priority;
|
va_start(ap, fmt);
|
||||||
char *strp;
|
__selinux_log_callback(false, type, fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
switch(type) {
|
return 0;
|
||||||
case SELINUX_WARNING:
|
|
||||||
priority = ANDROID_LOG_WARN;
|
|
||||||
break;
|
|
||||||
case SELINUX_INFO:
|
|
||||||
priority = ANDROID_LOG_INFO;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
priority = ANDROID_LOG_ERROR;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
va_start(ap, fmt);
|
|
||||||
if (vasprintf(&strp, fmt, ap) != -1) {
|
|
||||||
LOG_PRI(priority, "SELinux", "%s", strp);
|
|
||||||
free(strp);
|
|
||||||
}
|
|
||||||
va_end(ap);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue