itSmall layout cleanup of sup.c. - sup - small tool for privilege escalation Err parazyd.org 70 hgit clone https://git.parazyd.org/sup URL:https://git.parazyd.org/sup parazyd.org 70 1Log /git/sup/log.gph parazyd.org 70 1Files /git/sup/files.gph parazyd.org 70 1Refs /git/sup/refs.gph parazyd.org 70 1README /git/sup/file/README.gph parazyd.org 70 1LICENSE /git/sup/file/LICENSE.gph parazyd.org 70 i--- Err parazyd.org 70 1commit a1433c21cfd8539d3c34a0d40cc18022dcbfd0c6 /git/sup/commit/a1433c21cfd8539d3c34a0d40cc18022dcbfd0c6.gph parazyd.org 70 1parent 04c4ce9067d5428c6e71aa5788417054bce8bf4e /git/sup/commit/04c4ce9067d5428c6e71aa5788417054bce8bf4e.gph parazyd.org 70 hAuthor: parazyd URL:mailto:parazyd@dyne.org parazyd.org 70 iDate: Mon, 8 Jul 2019 18:04:47 +0200 Err parazyd.org 70 i Err parazyd.org 70 iSmall layout cleanup of sup.c. Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i M sup.c | 7 ++----- Err parazyd.org 70 i Err parazyd.org 70 i1 file changed, 2 insertions(+), 5 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/sup.c b/sup.c /git/sup/file/sup.c.gph parazyd.org 70 it@@ -10,6 +10,7 @@ Err parazyd.org 70 i #include "sha256.h" Err parazyd.org 70 i Err parazyd.org 70 i #define nelem(x) (sizeof (x) / sizeof *(x)) Err parazyd.org 70 i+#define CHUNK 1048576 /* 1MiB */ Err parazyd.org 70 i Err parazyd.org 70 i struct rule_t { Err parazyd.org 70 i const int uid; Err parazyd.org 70 it@@ -27,10 +28,8 @@ void die(char *msg) { Err parazyd.org 70 i exit(1); Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i-#define CHUNK 1048576 /* 1MiB */ Err parazyd.org 70 i static uint32 getsha(const char *path, unsigned char *dest) { Err parazyd.org 70 i static sha256_context sha; Err parazyd.org 70 i- Err parazyd.org 70 i unsigned char buf[CHUNK]; Err parazyd.org 70 i uint32 len, tot = 0; Err parazyd.org 70 i FILE *fd; Err parazyd.org 70 it@@ -70,7 +69,6 @@ int main(int argc, char *argv[]) { Err parazyd.org 70 i for (i = 0; i < nelem(rules); i++) Err parazyd.org 70 i printf("\nuser: %d\ncmd: %s\nbinary: %s\nsha256: %s\n", Err parazyd.org 70 i rules[i].uid, rules[i].cmd, rules[i].path, rules[i].hash); Err parazyd.org 70 i- Err parazyd.org 70 i return 0; Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 it@@ -87,7 +85,7 @@ int main(int argc, char *argv[]) { Err parazyd.org 70 i die("Can not stat program."); Err parazyd.org 70 i Err parazyd.org 70 i if (st.st_mode & 0022) Err parazyd.org 70 i- die("Can not run binaries others can write."); Err parazyd.org 70 i+ die("Can not run writable binaries."); Err parazyd.org 70 i Err parazyd.org 70 i if (getsha(rules[i].path, digest) != st.st_size) Err parazyd.org 70 i die("Binary file differs from size read."); Err parazyd.org 70 it@@ -106,6 +104,5 @@ int main(int argc, char *argv[]) { Err parazyd.org 70 i die("execv failed."); Err parazyd.org 70 i } Err parazyd.org 70 i } Err parazyd.org 70 i- Err parazyd.org 70 i die("Unauthorized command."); Err parazyd.org 70 i } Err parazyd.org 70 .