From 84f557dc73f361e2c55cd1a49a66784740b2f3ba Mon Sep 17 00:00:00 2001 From: Nicolas Iooss Date: Sat, 19 Nov 2016 11:14:28 +0100 Subject: [PATCH] [WIP] libsepol: do not dump pdb->global block if it is NULL TODO: does it make sense to have a policy with ->global=NULL? gdb session: Program received signal SIGSEGV, Segmentation fault. blocks_to_cil (pdb=0x6042e0) at module_to_cil.c:3760 3760 rc = global_block_to_cil(pdb, block, stack); (gdb) bt #0 blocks_to_cil (pdb=0x6042e0) at module_to_cil.c:3760 #1 sepol_module_policydb_to_cil (fp=fp@entry=0x7ffff79d05e0 <_IO_2_1_stdout_>, pdb=0x6042e0, linked=linked@entry=0) at module_to_cil.c:4047 #2 0x00007ffff7a86ac5 in sepol_module_package_to_cil (fp=fp@entry=0x7ffff79d05e0 <_IO_2_1_stdout_>, mod_pkg=0x604280) at module_to_cil.c:4076 #3 0x0000000000401acc in main (argc=, argv=) at pp.c:150 (gdb) p pdb->global $1 = (avrule_block_t *) 0x0 Signed-off-by: Nicolas Iooss --- libsepol/src/module_to_cil.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libsepol/src/module_to_cil.c b/libsepol/src/module_to_cil.c index b267443e93..b366d9546d 100644 --- a/libsepol/src/module_to_cil.c +++ b/libsepol/src/module_to_cil.c @@ -3836,6 +3836,10 @@ static int blocks_to_cil(struct policydb *pdb) } block = pdb->global; + if (!block) { + goto exit; + } + rc = global_block_to_cil(pdb, block, stack); if (rc != 0) { goto exit;