diff --git a/aide-0.16.7-empty_shdr_size.patch b/aide-0.16.7-empty_shdr_size.patch new file mode 100644 index 0000000..35d1f29 --- /dev/null +++ b/aide-0.16.7-empty_shdr_size.patch @@ -0,0 +1,17 @@ +--- ./src/do_md.c.orig 2018-03-19 05:10:19.994957024 -0400 ++++ ./src/do_md.c 2018-03-19 05:19:05.829957024 -0400 +@@ -135,8 +135,13 @@ + continue; + + while (!bingo && (data = elf_getdata (scn, data)) != NULL) { +- int maxndx = data->d_size / shdr.sh_entsize; ++ int maxndx; + int ndx; ++ ++ if (shdr.sh_entsize != 0) ++ maxndx = data->d_size / shdr.sh_entsize; ++ else ++ continue; + + for (ndx = 0; ndx < maxndx; ++ndx) { + (void) gelf_getdyn (data, ndx, &dyn); diff --git a/aide.spec b/aide.spec index 8f53c8f..c62032a 100644 --- a/aide.spec +++ b/aide.spec @@ -28,6 +28,8 @@ Buildrequires: audit-libs-devel Patch1: aide-0.16rc1-man.patch # fix aide in FIPS mode Patch2: aide-0.16b1-fipsfix.patch +# fix segfault when data chunk in section is empty +Patch3: aide-0.16.7-empty_shdr_size.patch %description AIDE (Advanced Intrusion Detection Environment) is a file integrity