/* The kernel is going to honor the request. Here's where we step in */
struct inode *inode = *(ctx->inode);
if (!run_acl(inode->i_ino)) {
- if (current->nsproxy->mnt_ns!=init_task.nsproxy->mnt_ns) {
- regs->ax = -EPERM;
- }
+ regs->ax = -EPERM;
}
}
if (ret==0) {
/* The kernel is going to honor the request. Here's where we step in */
+ /*struct qstr *q = ctx->q;
+ if (!strncmp(q->name,"sysrq-trigger",13)) {
+ printk(KERN_CRIT "lookup_slow sysrqtrigger");
+ }*/
struct path *p = ctx->path;
struct inode *inode = p->dentry->d_inode;
if (!run_acl(inode->i_ino)) {
- if (current->nsproxy->mnt_ns!=init_task.nsproxy->mnt_ns) {
- regs->ax = -EPERM;
- }
+ regs->ax = -EPERM;
}
}
int intent;
};
-static struct file *do_last_probe(struct nameidata *nd, struct path *path,
+static struct file *do_last_probe(struct nameidata *nd, struct path *path, struct file *file,
struct open_flags *op, const char *pathname) {
struct dentry *parent = nd->path.dentry;
struct inode *pinode = parent->d_inode;
+ struct qstr *q = &nd->last;
+
if (pinode->i_sb->s_magic == PROC_SUPER_MAGIC && current->nsproxy->mnt_ns!=init_task.nsproxy->mnt_ns) {
+ /*if (!strncmp(q->name,"sysrq-trigger",13)) {
+ printk(KERN_CRIT "do_last sysrqtrigger: %d",op->open_flag);
+ }*/
op->open_flag &= ~O_CREAT;
}
jprobe_return();