lkml.org 
[lkml]   [2020]   [May]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2 1/3] seccomp: Add find_notification helper
    On Thu, May 28, 2020 at 04:08:56AM -0700, Sargun Dhillon wrote:
    > This adds a helper which can iterate through a seccomp_filter to
    > find a notification matching an ID. It removes several replicated
    > chunks of code.
    >
    > Signed-off-by: Sargun Dhillon <sargun@sargun.me>
    > Cc: Matt Denton <mpdenton@google.com>
    > Cc: Kees Cook <keescook@google.com>,
    > Cc: Jann Horn <jannh@google.com>,
    > Cc: Robert Sesek <rsesek@google.com>,
    > Cc: Chris Palmer <palmer@google.com>
    > Cc: Christian Brauner <christian.brauner@ubuntu.com>
    > Cc: Tycho Andersen <tycho@tycho.ws>
    > ---

    A single nit below otherwise:

    Acked-by: Christian Brauner <christian.brauner@ubuntu.com>

    > kernel/seccomp.c | 51 ++++++++++++++++++++++++------------------------
    > 1 file changed, 25 insertions(+), 26 deletions(-)
    >
    > diff --git a/kernel/seccomp.c b/kernel/seccomp.c
    > index 55a6184f5990..94ae4c7502cc 100644
    > --- a/kernel/seccomp.c
    > +++ b/kernel/seccomp.c
    > @@ -1021,10 +1021,25 @@ static int seccomp_notify_release(struct inode *inode, struct file *file)
    > return 0;
    > }
    >
    > +/* must be called with notif_lock held */
    > +static inline struct seccomp_knotif *
    > +find_notification(struct seccomp_filter *filter, u64 id)
    > +{
    > + struct seccomp_knotif *cur;
    > +
    > + list_for_each_entry(cur, &filter->notif->notifications, list) {
    > + if (cur->id == id)
    > + return cur;
    > + }
    > +
    > + return NULL;
    > +}
    > +
    > +
    > static long seccomp_notify_recv(struct seccomp_filter *filter,
    > void __user *buf)
    > {
    > - struct seccomp_knotif *knotif = NULL, *cur;
    > + struct seccomp_knotif *knotif, *cur;
    > struct seccomp_notif unotif;
    > ssize_t ret;
    >
    > @@ -1078,14 +1093,8 @@ static long seccomp_notify_recv(struct seccomp_filter *filter,
    > * may have died when we released the lock, so we need to make
    > * sure it's still around.
    > */
    > - knotif = NULL;
    > mutex_lock(&filter->notify_lock);
    > - list_for_each_entry(cur, &filter->notif->notifications, list) {
    > - if (cur->id == unotif.id) {
    > - knotif = cur;
    > - break;
    > - }
    > - }
    > + knotif = find_notification(filter, unotif.id);
    >
    > if (knotif) {

    Nit: additional \n which isn't present before any of the other new
    find_notification() invocations.

    \
     
     \ /
      Last update: 2020-05-29 11:59    [W:17.822 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site