mcstrans: Fix check in raw_color()

raw_color() uses color_str as an output argument which is assigned to a new
allocated memory. Therefore it should fail when color_str is null; or
when *color_str is not null in order to avoid a memory leak.

Fixes:
>>> selinux.selinux_raw_context_to_color('system_u:system_r:inetd_t:s0')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 0] Error

Signed-off-by: Petr Lautrbach <plautrba@redhat.com>
This commit is contained in:
Petr Lautrbach 2018-12-18 16:19:41 +01:00
parent 89e808af1d
commit 8a8a4f8e05

View File

@ -292,7 +292,7 @@ int raw_color(const security_context_t raw, char **color_str) {
size_t result_size = (N_COLOR * CHARS_PER_COLOR) + 1;
int rc = -1;
if (!color_str || !*color_str) {
if (!color_str || *color_str) {
return -1;
}