Prevent potentially unterminated buffers while adding rule to the list
authorRafal Krypa <r.krypa@samsung.com>
Fri, 16 Aug 2013 08:48:56 +0000 (10:48 +0200)
committerJarkko Sakkinen <jarkko.sakkinen@intel.com>
Fri, 16 Aug 2013 10:28:37 +0000 (13:28 +0300)
commit5cee758863b25c20b1da17e0cb7f7bc3cdfa6fd4
treed12bfd62e4d448814035035fc5d5bdcd67f47304
parent3fee29a4d362b6e4b0d4185ea3c9660b3ca92b71
Prevent potentially unterminated buffers while adding rule to the list

Functions smack_accesses_add() and smack_accesses_add_modify() don't check
length of arguments subject and object. These arguments are used as source
for strncpy(), which can cause labels to be truncated.

But the length argument for strncpy() is too large. This might cause
rule->subject or rule->object to be not terminated by null character.
It can happen when these functions are called from outside libsmack.
It can also happen while parsing files in smack_accesses_add_from_file(),
because that function doesn't validate subject and object too.

This commit fixes the problem by checking arguments in smack_accesses_add()
and smack_accesses_add_modify(). After checking strcpy() is safe for
copying them.
libsmack/libsmack.c