itAdd arg.h. - 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 96b227c7bf3acc15c0de695b074f2b32fcabe21e /git/sup/commit/96b227c7bf3acc15c0de695b074f2b32fcabe21e.gph parazyd.org 70 1parent 6ff18b795ab40b43d16da0a8e5affbd85781525c /git/sup/commit/6ff18b795ab40b43d16da0a8e5affbd85781525c.gph parazyd.org 70 hAuthor: parazyd URL:mailto:parazyd@dyne.org parazyd.org 70 iDate: Tue, 2 Jul 2019 13:00:34 +0200 Err parazyd.org 70 i Err parazyd.org 70 iAdd arg.h. Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i A arg.h | 50 +++++++++++++++++++++++++++++++ Err parazyd.org 70 i Err parazyd.org 70 i1 file changed, 50 insertions(+), 0 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/arg.h b/arg.h /git/sup/file/arg.h.gph parazyd.org 70 it@@ -0,0 +1,50 @@ Err parazyd.org 70 i+/* Err parazyd.org 70 i+ * Copy me if you can. Err parazyd.org 70 i+ * by 20h Err parazyd.org 70 i+ */ Err parazyd.org 70 i+ Err parazyd.org 70 i+#ifndef ARG_H__ Err parazyd.org 70 i+#define ARG_H__ Err parazyd.org 70 i+ Err parazyd.org 70 i+extern char *argv0; Err parazyd.org 70 i+ Err parazyd.org 70 i+/* use main(int argc, char *argv[]) */ Err parazyd.org 70 i+#define ARGBEGIN for (argv0 = *argv, argv++, argc--;\ Err parazyd.org 70 i+ argv[0] && argv[0][0] == '-'\ Err parazyd.org 70 i+ && argv[0][1];\ Err parazyd.org 70 i+ argc--, argv++) {\ Err parazyd.org 70 i+ char argc_;\ Err parazyd.org 70 i+ char **argv_;\ Err parazyd.org 70 i+ int brk_;\ Err parazyd.org 70 i+ if (argv[0][1] == '-' && argv[0][2] == '\0') {\ Err parazyd.org 70 i+ argv++;\ Err parazyd.org 70 i+ argc--;\ Err parazyd.org 70 i+ break;\ Err parazyd.org 70 i+ }\ Err parazyd.org 70 i+ int i_;\ Err parazyd.org 70 i+ for (i_ = 1, brk_ = 0, argv_ = argv;\ Err parazyd.org 70 i+ argv[0][i_] && !brk_;\ Err parazyd.org 70 i+ i_++) {\ Err parazyd.org 70 i+ if (argv_ != argv)\ Err parazyd.org 70 i+ break;\ Err parazyd.org 70 i+ argc_ = argv[0][i_];\ Err parazyd.org 70 i+ switch (argc_) Err parazyd.org 70 i+ Err parazyd.org 70 i+#define ARGEND }\ Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+#define ARGC() argc_ Err parazyd.org 70 i+ Err parazyd.org 70 i+#define EARGF(x) ((argv[0][i_+1] == '\0' && argv[1] == NULL)?\ Err parazyd.org 70 i+ ((x), abort(), (char *)0) :\ Err parazyd.org 70 i+ (brk_ = 1, (argv[0][i_+1] != '\0')?\ Err parazyd.org 70 i+ (&argv[0][i_+1]) :\ Err parazyd.org 70 i+ (argc--, argv++, argv[0]))) Err parazyd.org 70 i+ Err parazyd.org 70 i+#define ARGF() ((argv[0][i_+1] == '\0' && argv[1] == NULL)?\ Err parazyd.org 70 i+ (char *)0 :\ Err parazyd.org 70 i+ (brk_ = 1, (argv[0][i_+1] != '\0')?\ Err parazyd.org 70 i+ (&argv[0][i_+1]) :\ Err parazyd.org 70 i+ (argc--, argv++, argv[0]))) Err parazyd.org 70 i+ Err parazyd.org 70 i+#endif Err parazyd.org 70 .