aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2012-07-21 12:13:42 -0400
committerAnthony G. Basile <blueness@gentoo.org>2012-07-21 12:13:42 -0400
commita245f5a428d1f1fb54bfc7bf7d93a25566c5314e (patch)
tree42942a29dd32e85f0f6ce310fb9063958936d79e
parentscripts/pypaxctl: remove debug code (diff)
downloadelfix-a245f5a428d1f1fb54bfc7bf7d93a25566c5314e.tar.gz
elfix-a245f5a428d1f1fb54bfc7bf7d93a25566c5314e.tar.bz2
elfix-a245f5a428d1f1fb54bfc7bf7d93a25566c5314e.zip
scripts/paxmodule.c: add setstrstring function
-rw-r--r--.gitignore2
-rw-r--r--scripts/paxmodule.c32
2 files changed, 34 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 3d33206..0de2e42 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,5 @@ fix-gnustack
paxctl-ng
bad-gnustack
daemon
+#
+scripts/build
diff --git a/scripts/paxmodule.c b/scripts/paxmodule.c
index bd009dc..18c64aa 100644
--- a/scripts/paxmodule.c
+++ b/scripts/paxmodule.c
@@ -329,3 +329,35 @@ pax_setflags(PyObject *self, PyObject *args)
return Py_BuildValue("");
}
+
+static PyObject *
+pax_setstrflags(PyObject *self, PyObject *args)
+{
+ const char *f_name, *sflags;
+ int fd;
+ uint16_t flags;
+
+ if (!PyArg_ParseTuple(args, "ss", &f_name, &sflags))
+ {
+ PyErr_SetString(PaxError, "pax_setflags: PyArg_ParseTuple failed");
+ return NULL;
+ }
+
+ if((fd = open(f_name, O_RDWR)) < 0)
+ {
+ PyErr_SetString(PaxError, "pax_setflags: open() failed");
+ return NULL;
+ }
+
+ flags = string2bin(sflags);
+
+ set_pt_flags(fd, flags);
+
+#ifdef XATTR
+ set_xt_flags(fd, flags);
+#endif
+
+ close(fd);
+
+ return Py_BuildValue("");
+}