diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2012-07-21 12:13:42 -0400 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2012-07-21 12:13:42 -0400 |
commit | a245f5a428d1f1fb54bfc7bf7d93a25566c5314e (patch) | |
tree | 42942a29dd32e85f0f6ce310fb9063958936d79e | |
parent | scripts/pypaxctl: remove debug code (diff) | |
download | elfix-a245f5a428d1f1fb54bfc7bf7d93a25566c5314e.tar.gz elfix-a245f5a428d1f1fb54bfc7bf7d93a25566c5314e.tar.bz2 elfix-a245f5a428d1f1fb54bfc7bf7d93a25566c5314e.zip |
scripts/paxmodule.c: add setstrstring function
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | scripts/paxmodule.c | 32 |
2 files changed, 34 insertions, 0 deletions
@@ -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(""); +} |