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