[systemd-devel] [PATCH] ima-setup: write policy one line at a time
Zbigniew Jędrzejewski-Szmek
zbyszek at in.waw.pl
Wed Jun 10 17:34:54 PDT 2015
On Thu, Jun 11, 2015 at 01:16:47AM +0200, Lennart Poettering wrote:
> On Wed, 10.06.15 15:38, Zbigniew Jędrzejewski-Szmek (zbyszek at in.waw.pl) wrote:
>
> > ima_write_policy() expects data to be written as one or more
> > rules, no more than PAGE_SIZE at a time. Easiest way to ensure
> > that we are not splitting rules is to read and write on line at
> > a time.
> >
> > https://bugzilla.redhat.com/show_bug.cgi?id=1226948
> > ---
> > src/core/ima-setup.c | 39 +++++++++++++++++----------------------
> > 1 file changed, 17 insertions(+), 22 deletions(-)
> >
> > diff --git a/src/core/ima-setup.c b/src/core/ima-setup.c
> > index 4d8b638115..5b3d16cd31 100644
> > --- a/src/core/ima-setup.c
> > +++ b/src/core/ima-setup.c
> > @@ -23,9 +23,6 @@
> >
> > #include <unistd.h>
> > #include <errno.h>
> > -#include <fcntl.h>
> > -#include <sys/stat.h>
> > -#include <sys/mman.h>
> >
> > #include "ima-setup.h"
> > #include "util.h"
> > @@ -36,20 +33,19 @@
> > #define IMA_POLICY_PATH "/etc/ima/ima-policy"
> >
> > int ima_setup(void) {
> > - int r = 0;
> > -
> > #ifdef HAVE_IMA
> > - _cleanup_close_ int policyfd = -1, imafd = -1;
> > - struct stat st;
> > - char *policy;
> > + _cleanup_fclose_ FILE *input = NULL;
> > + _cleanup_close_ int imafd = -1;
> > + char line[LINE_MAX];
>
> Hmm, I wonder if this might bite us. LINE_MAX is a good choice as max
> line length for formats we define in systemd, but the question of
> course is what the the max line length is for IMA...
It's PAGE_SIZE ;) Making this dynamic doesn't make much sense to me,
but we could make it 4096, as this is the lowest (and common) size.
Zbyszek
More information about the systemd-devel
mailing list