lkml.org 
[lkml]   [2021]   [Feb]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 3/3] IMA: add support to measure duplicate buffer for critical data hook
    From
    Date


    On 2021-02-08 12:24 p.m., Mimi Zohar wrote:
    > Hi Tushar,
    >
    > On Fri, 2021-01-29 at 16:45 -0800, Tushar Sugandhi wrote:
    >
    >> diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c
    >>
    >> index c096ef8945c7..fbf359495fa8 100644
    >> --- a/security/integrity/ima/ima_queue.c
    >> +++ b/security/integrity/ima/ima_queue.c
    >> @@ -158,7 +158,7 @@ static int ima_pcr_extend(struct tpm_digest *digests_arg, int pcr)
    >> */
    >> int ima_add_template_entry(struct ima_template_entry *entry, int violation,
    >> const char *op, struct inode *inode,
    >> - const unsigned char *filename)
    >> + const unsigned char *filename, bool allow_dup)
    >> {
    >> u8 *digest = entry->digests[ima_hash_algo_idx].digest;
    >>
    > struct tpm_digestate_entry(struct ima_template_entry *entry, int violation,
    Not sure I understand this. Maybe a typo? Could you please explain?

    >>
    >> mutex_lock(&ima_extend_list_mutex);
    >> if (!violation) {
    >> - if (ima_lookup_digest_entry(digest, entry->pcr)) {
    >> + if (!allow_dup &&
    >> + ima_lookup_digest_entry(digest, entry->pcr)) {
    >
    > Can't this change be simplified to "if (!violation && !allow_dup)"?
    >
    Sure. Will do.

    Earlier I wasn't sure if 'violation' would touch any other use-cases
    inadvertently. That's why I localized the change as above.

    But now since we are supporting other scenarios as well,
    I believe "if (!violation && !allow_dup)" would be cleaner.

    > Also perhaps instead of passing another variable "allow_dup" to each of
    > these functions, pass a mask containing violation and allow_dup.
    >
    There were examples of both approaches in ima_match_policy().
    - int *pcr/ima_template_desc **template_desc as an out-param;
    - and various actions as flags in return int.

    Earlier I couldn't decide one way or the other, so I picked the
    out-param approach.

    But since allow_dup is just a single bit info, returning it as a bit in
    the action flag is a cleaner solution.
    Will implement it with flag in the next iteration.

    Thanks again for reviewing the series. Really appreciate it.

    Thanks,
    Tushar

    >> audit_cause = "hash_exists";
    >> result = -EEXIST;
    >> goto out;
    >
    > thanks,
    >
    > Mimi
    >

    \
     
     \ /
      Last update: 2021-02-09 22:22    [W:2.599 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site