aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2012-07-21 11:40:56 -0400
committerAnthony G. Basile <blueness@gentoo.org>2012-07-21 11:40:56 -0400
commit5090e3d0581d824640b86c7001b97837e22f7aea (patch)
treead961e0e7c9b1420e6013326471cb69f09fc9b90
parentscripts/paxmodule.c: fix FLAGS_SIZE (diff)
downloadelfix-5090e3d0581d824640b86c7001b97837e22f7aea.tar.gz
elfix-5090e3d0581d824640b86c7001b97837e22f7aea.tar.bz2
elfix-5090e3d0581d824640b86c7001b97837e22f7aea.zip
scripts/pypaxctl: frontend to pypax module
-rw-r--r--scripts/Makefile.am2
-rwxr-xr-xscripts/pypaxctl48
2 files changed, 49 insertions, 1 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 5cbc314..c4eef37 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -1,2 +1,2 @@
dist_sbin_SCRIPTS = revdep-pax
-EXTRA_DIST = paxmodule.c setup.py
+EXTRA_DIST = paxmodule.c setup.py pypaxctl
diff --git a/scripts/pypaxctl b/scripts/pypaxctl
new file mode 100755
index 0000000..266a571
--- /dev/null
+++ b/scripts/pypaxctl
@@ -0,0 +1,48 @@
+#!/usr/bin/env python
+
+import sys
+import getopt
+import pax
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 's:g')
+ except getopt.GetoptError as err:
+ print(err)
+ sys.exit(1)
+
+ if len(opts) == 0:
+ print('Provide either -s <flags> <elf> xor -g <elf>')
+ sys.exit(1)
+
+ binary = None
+
+ do_set = 0
+ do_get = 0
+
+ for o, a in opts:
+ if o == '-s':
+ #pax.setflags(a, flags)
+ flags = a
+ do_set = 1
+ elif o == '-g':
+ #( str_flags, bin_flags ) = pax.getflags(a)
+ do_get = 1
+
+ if( (do_set + do_get) != 1 ):
+ print('Provide either -s <flags> <elf> xor -g <elf>')
+ sys.exit(1)
+
+ if( len(args) < 1 ):
+ print('Provide either -s <flags> <elf> xor -g <elf>')
+ sys.exit(1)
+
+ if( do_set == 1 ):
+ for binary in args:
+ print('set %s on %s' % (flags,binary))
+ else:
+ for binary in args:
+ print('get on %s' % binary)
+
+if __name__ == '__main__':
+ main()