diff options
author | David Coles <david.coles@sony.com> | 2019-06-13 17:20:10 -0700 |
---|---|---|
committer | Treehugger Robot <treehugger-gerrit@google.com> | 2019-06-17 13:37:12 +0000 |
commit | 87ec5cddd130ebedcf8992261f1127b1efe6d952 (patch) | |
tree | 1976e52c5bb617b4bbcad73b1ba1d2e7fd36f553 /minijail0_cli.c | |
parent | f8c21ea6676eb6f366562cb9dff8cb30c420fd00 (diff) | |
download | minijail-87ec5cddd130ebedcf8992261f1127b1efe6d952.tar.gz |
minijail: Validate add_binding flag
Previously if an invalid flag was specified (e.g. `writable`) then it
would be silently ignored.
Bug: crbug.com/974204
Change-Id: I0b0b40ea07d0c62276b3ba27c67031b034902854
Diffstat (limited to 'minijail0_cli.c')
-rw-r--r-- | minijail0_cli.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/minijail0_cli.c b/minijail0_cli.c index 807e567..b0b6518 100644 --- a/minijail0_cli.c +++ b/minijail0_cli.c @@ -139,9 +139,16 @@ static void add_binding(struct minijail *j, char *arg) } if (dest == NULL || dest[0] == '\0') dest = src; - if (flags == NULL || flags[0] == '\0') - flags = "0"; - if (minijail_bind(j, src, dest, atoi(flags))) { + int writable; + if (flags == NULL || flags[0] == '\0' || !strcmp(flags, "0")) + writable = 0; + else if (!strcmp(flags, "1")) + writable = 1; + else { + fprintf(stderr, "Bad value for <writable>: %s\n", flags); + exit(1); + } + if (minijail_bind(j, src, dest, writable)) { fprintf(stderr, "minijail_bind failed.\n"); exit(1); } |