X-Git-Url: https://bbs.cooldavid.org/git/?a=blobdiff_plain;f=security%2Fintegrity%2Fima%2Fima_main.c;fp=security%2Fintegrity%2Fima%2Fima_main.c;h=995bd1b98fa8cc0d3cad7839f51b51c369a7f9b4;hb=b575156dafef208415ff0842c392733d16d4ccf1;hp=e662b89d407944103dc121b9ccb37f7e68ac62e1;hpb=8549164143a5431f9d9ea846acaa35a862410d9c;p=net-next-2.6.git diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c index e662b89d407..995bd1b98fa 100644 --- a/security/integrity/ima/ima_main.c +++ b/security/integrity/ima/ima_main.c @@ -122,7 +122,6 @@ static void ima_inc_counts(struct ima_iint_cache *iint, fmode_t mode) { BUG_ON(!mutex_is_locked(&iint->mutex)); - iint->opencount++; if ((mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) iint->readcount++; if (mode & FMODE_WRITE) @@ -181,7 +180,6 @@ static void ima_dec_counts(struct ima_iint_cache *iint, struct inode *inode, mode_t mode = file->f_mode; BUG_ON(!mutex_is_locked(&iint->mutex)); - iint->opencount--; if ((mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) iint->readcount--; if (mode & FMODE_WRITE) { @@ -192,13 +190,11 @@ static void ima_dec_counts(struct ima_iint_cache *iint, struct inode *inode, } } - if (((iint->opencount < 0) || - (iint->readcount < 0) || + if (((iint->readcount < 0) || (iint->writecount < 0)) && !ima_limit_imbalance(file)) { - printk(KERN_INFO "%s: open/free imbalance (r:%ld w:%ld o:%ld)\n", - __func__, iint->readcount, iint->writecount, - iint->opencount); + printk(KERN_INFO "%s: open/free imbalance (r:%ld w:%ld)\n", + __func__, iint->readcount, iint->writecount); dump_stack(); } }