From a48b0e6dc454fbde77f3b93dbbe49d06334364da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Bollo?= Date: Thu, 2 Nov 2023 10:24:27 +0100 Subject: [PATCH] Improve fuzz test --- afl/INPUTS/t5 | 5 ++ afl/INPUTS/t6 | 2 + afl/INPUTS/t7 | 2 + afl/INPUTS/t8 | 133 ++++++++++++++++++++++++++++++++++++++++++ src/tests/slmc-test.c | 10 ++-- 5 files changed, 148 insertions(+), 4 deletions(-) create mode 100644 afl/INPUTS/t6 create mode 100644 afl/INPUTS/t7 create mode 100644 afl/INPUTS/t8 diff --git a/afl/INPUTS/t5 b/afl/INPUTS/t5 index fd43425..c711f7a 100644 --- a/afl/INPUTS/t5 +++ b/afl/INPUTS/t5 @@ -1,5 +1,10 @@ log log on +id toto +path / default +permission urn:zarg +display +clear log log off log diff --git a/afl/INPUTS/t6 b/afl/INPUTS/t6 new file mode 100644 index 0000000..b5f77aa --- /dev/null +++ b/afl/INPUTS/t6 @@ -0,0 +1,2 @@ +sec-lsm-manager 1 2 3 +sec-lsm-manager 1 2 3 diff --git a/afl/INPUTS/t7 b/afl/INPUTS/t7 new file mode 100644 index 0000000..4f56b2a --- /dev/null +++ b/afl/INPUTS/t7 @@ -0,0 +1,2 @@ +sec-lsm-manager 3 +clear diff --git a/afl/INPUTS/t8 b/afl/INPUTS/t8 new file mode 100644 index 0000000..2f1ec2a --- /dev/null +++ b/afl/INPUTS/t8 @@ -0,0 +1,133 @@ +#-- ID -------------- +#size + +clear +id + +clear +id a + +clear +id aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + +#invalid characters + +clear +id a/b + +#unrecoverable + +clear +id a/b +id xx + +#exists + +clear +id xx +id xx + +#-- PERMISSION -------------- +#size + +clear +permission + +clear +permission a + +clear +permission aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + +#unrecoverable + +clear +id a/b +permission urn + +#duplicate + +clear +permission urn +permission toto +permission tata +permission toto + + +#-- PATH -------------- + +#unrecoverable + +clear +id a/b +path / default + +#valid + +clear +path / ourgh! + +#duplicate + +clear +path / default +path / default + +# size + +clear +path default + +# exist + +clear +path /dfhrufherfh default + +#-- PLUG -------------- + +#unrecoverable +clear +id a/b +plug / toto / + +#already + +clear +plug / toto /tmp +plug /tmp tata /run +plug /tmp titi /var +plug / tutu /run + +#valid id + +clear +plug / /tmp +clear +plug / x /tmp +clear +plug / a/b /tmp + +#not exist + +clear +plug /torara toto /tmp +clear +plug /tmp titi /eliuhgfzierhg + +#-- INSTALL -------------- + +#unrecoverable + +clear +id a/b +install + +#id required + +clear +path / id +install + + +# vim: noai ts=3 sw=3 et list + diff --git a/src/tests/slmc-test.c b/src/tests/slmc-test.c index c9e004c..6a668c8 100644 --- a/src/tests/slmc-test.c +++ b/src/tests/slmc-test.c @@ -32,6 +32,8 @@ #include "protocol/client.h" #include "protocol/pollitem.h" +#define PARANO 0 /* avoid dead code to improve coverage */ + int main(int ac, const char **av) { const char *prog = *av; @@ -47,18 +49,18 @@ int main(int ac, const char **av) int rc, pfds[2], df1, st; const char *name = strcmp(*av, "-") ? *av : "/dev/stdin"; int fd = open(name, O_RDONLY); - if (fd < 0) { + if (PARANO && fd < 0) { fprintf(stderr, "error %s: %s\n", *av, strerror(errno)); continue; } df1 = dup(1); - if (df1 < 0) { + if (PARANO && df1 < 0) { fprintf(stderr, "error can't dup: %s\n", strerror(errno)); close(fd); continue; } rc = pipe(pfds); - if (rc < 0) { + if (PARANO && rc < 0) { fprintf(stderr, "error can't pipe: %s\n", strerror(errno)); close(fd); close(df1); @@ -67,7 +69,7 @@ int main(int ac, const char **av) fcntl(pfds[0], F_SETFL, O_RDONLY|O_NONBLOCK); fcntl(pfds[1], F_SETFL, O_WRONLY|O_NONBLOCK); rc = client_create(&client, pfds[0], df1); - if (rc < 0) { + if (PARANO && rc < 0) { fprintf(stderr, "error can't create client: %s\n", strerror(-rc)); close(fd); close(df1);