2014-09-08 16:36:00

by Jeff Layton

[permalink] [raw]
Subject: [PATCH] gssd: ensure that preferred_realm is non-NULL before passing it to strcmp

It's possible for "preferred_realm" to be NULL, in which case we
don't want to pass it to strcmp. Other places that use this variable
test whether it's NULL first -- we need to do the same here.

This should fix the gssd crash reported here:

https://bugzilla.redhat.com/show_bug.cgi?id=1108615

Reported-by: Brian J. Murrell <[email protected]>
Signed-off-by: Jeff Layton <[email protected]>
---
utils/gssd/krb5_util.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
index 8369fdf0ed27..f1ebc0d09731 100644
--- a/utils/gssd/krb5_util.c
+++ b/utils/gssd/krb5_util.c
@@ -876,7 +876,7 @@ find_keytab_entry(krb5_context context, krb5_keytab kt, const char *tgtname,
i = 0;
realm = realmnames[i];

- if (strcmp (realm, preferred_realm) != 0) {
+ if (preferred_realm && strcmp (realm, preferred_realm) != 0) {
realm = preferred_realm;
/* resetting the realmnames index */
i = -1;
--
1.9.3



2014-09-16 13:30:37

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH] gssd: ensure that preferred_realm is non-NULL before passing it to strcmp



On 09/08/2014 12:35 PM, Jeff Layton wrote:
> It's possible for "preferred_realm" to be NULL, in which case we
> don't want to pass it to strcmp. Other places that use this variable
> test whether it's NULL first -- we need to do the same here.
>
> This should fix the gssd crash reported here:
>
> https://bugzilla.redhat.com/show_bug.cgi?id=1108615
>
> Reported-by: Brian J. Murrell <[email protected]>
> Signed-off-by: Jeff Layton <[email protected]>
Committed...

steved.

> ---
> utils/gssd/krb5_util.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
> index 8369fdf0ed27..f1ebc0d09731 100644
> --- a/utils/gssd/krb5_util.c
> +++ b/utils/gssd/krb5_util.c
> @@ -876,7 +876,7 @@ find_keytab_entry(krb5_context context, krb5_keytab kt, const char *tgtname,
> i = 0;
> realm = realmnames[i];
>
> - if (strcmp (realm, preferred_realm) != 0) {
> + if (preferred_realm && strcmp (realm, preferred_realm) != 0) {
> realm = preferred_realm;
> /* resetting the realmnames index */
> i = -1;
>