Message ID | 20181103173035.23974-1-ebiggers@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KEYS: fix parsing invalid pkey info string | expand |
On Sat, Nov 03, 2018 at 10:30:35AM -0700, Eric Biggers wrote: > From: Eric Biggers <ebiggers@google.com> > > We need to check the return value of match_token() for Opt_err (-1) > before doing anything with it. > > Reported-by: syzbot+a22e0dc07567662c50bc@syzkaller.appspotmail.com > Fixes: 00d60fd3b932 ("KEYS: Provide keyctls to drive the new key type ops for asymmetric keys [ver #2]") > Signed-off-by: Eric Biggers <ebiggers@google.com> > --- > security/keys/keyctl_pkey.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/security/keys/keyctl_pkey.c b/security/keys/keyctl_pkey.c > index 783978842f13a..987fac8051d70 100644 > --- a/security/keys/keyctl_pkey.c > +++ b/security/keys/keyctl_pkey.c > @@ -50,6 +50,8 @@ static int keyctl_pkey_params_parse(struct kernel_pkey_params *params) > if (*p == '\0' || *p == ' ' || *p == '\t') > continue; > token = match_token(p, param_keys, args); > + if (token == Opt_err) > + return -EINVAL; > if (__test_and_set_bit(token, &token_mask)) > return -EINVAL; > q = args[0].from; > -- > 2.19.1 Ping. David, are you planning to apply this? - Eric
On Wed, Nov 28, 2018 at 03:20:20PM -0800, Eric Biggers wrote: > On Sat, Nov 03, 2018 at 10:30:35AM -0700, Eric Biggers wrote: > > From: Eric Biggers <ebiggers@google.com> > > > > We need to check the return value of match_token() for Opt_err (-1) > > before doing anything with it. > > > > Reported-by: syzbot+a22e0dc07567662c50bc@syzkaller.appspotmail.com > > Fixes: 00d60fd3b932 ("KEYS: Provide keyctls to drive the new key type ops for asymmetric keys [ver #2]") > > Signed-off-by: Eric Biggers <ebiggers@google.com> > > --- > > security/keys/keyctl_pkey.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/security/keys/keyctl_pkey.c b/security/keys/keyctl_pkey.c > > index 783978842f13a..987fac8051d70 100644 > > --- a/security/keys/keyctl_pkey.c > > +++ b/security/keys/keyctl_pkey.c > > @@ -50,6 +50,8 @@ static int keyctl_pkey_params_parse(struct kernel_pkey_params *params) > > if (*p == '\0' || *p == ' ' || *p == '\t') > > continue; > > token = match_token(p, param_keys, args); > > + if (token == Opt_err) > > + return -EINVAL; > > if (__test_and_set_bit(token, &token_mask)) > > return -EINVAL; > > q = args[0].from; > > -- > > 2.19.1 > > Ping. David, are you planning to apply this? > > - Eric > Ping.
diff --git a/security/keys/keyctl_pkey.c b/security/keys/keyctl_pkey.c index 783978842f13a..987fac8051d70 100644 --- a/security/keys/keyctl_pkey.c +++ b/security/keys/keyctl_pkey.c @@ -50,6 +50,8 @@ static int keyctl_pkey_params_parse(struct kernel_pkey_params *params) if (*p == '\0' || *p == ' ' || *p == '\t') continue; token = match_token(p, param_keys, args); + if (token == Opt_err) + return -EINVAL; if (__test_and_set_bit(token, &token_mask)) return -EINVAL; q = args[0].from;