aboutsummaryrefslogtreecommitdiff
path: root/minijail0_cli.c
diff options
context:
space:
mode:
authorDavid Coles <david.coles@sony.com>2019-06-13 17:20:10 -0700
committerTreehugger Robot <treehugger-gerrit@google.com>2019-06-17 13:37:12 +0000
commit87ec5cddd130ebedcf8992261f1127b1efe6d952 (patch)
tree1976e52c5bb617b4bbcad73b1ba1d2e7fd36f553 /minijail0_cli.c
parentf8c21ea6676eb6f366562cb9dff8cb30c420fd00 (diff)
downloadminijail-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.c13
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);
}