AUDIT: Clean up logging of untrusted strings
authorSteve Grubb <sgrubb@redhat.com>
Thu, 19 May 2005 09:24:22 +0000 (10:24 +0100)
committerDavid Woodhouse <dwmw2@shinybook.infradead.org>
Thu, 19 May 2005 09:24:22 +0000 (10:24 +0100)
commit168b7173959f80d20720dd1f7ec909a88ef2689d
treedc197062e11c003b330b5302535fd74407c2138b
parent209aba03243ee42a22f8df8d08aa9963f62aec64
AUDIT: Clean up logging of untrusted strings

* If vsnprintf returns -1, it will mess up the sk buffer space accounting.
This is fixed by not calling skb_put with bogus len values.

* audit_log_hex was a loop that called audit_log_vformat with %02X for each
character. This is very inefficient since conversion from unsigned character
to Ascii representation is essentially masking, shifting, and byte lookups.
Also, the length of the converted string is well known - it's twice the
original. Fixed by rewriting the function.

* audit_log_untrustedstring had no comments. This makes it hard for
someone to understand what the string format will be.

* audit_log_d_path was never fixed to use untrustedstring. This could mess
up user space parsers. This was fixed to make a temp buffer, call d_path,
and log temp buffer using untrustedstring.

From: Steve Grubb <sgrubb@redhat.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
kernel/audit.c