Re: [PATCH] Next branch: authgss: authgss.c: Fix warnings for uninitizlized variable expire

Boaz Harrosh
2014-09-02T10:52:23Z

On 09/01/2014 04:50 PM, Trond Myklebust wrote:
> On Mon, Sep 1, 2014 at 7:32 AM, Shakil A Khan <shakilk1729@gmail.com> wrote:
>> Signed-off-by : Shakil A Khan <shakilk1729@gmail.com>
>> ---
>> net/sunrpc/auth_gss/auth_gss.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
>> index afb292c..bea0951 100644
>> --- a/net/sunrpc/auth_gss/auth_gss.c
>> +++ b/net/sunrpc/auth_gss/auth_gss.c
>> @@ -1387,7 +1387,7 @@ gss_key_timeout(struct rpc_cred *rc)
>> struct gss_cred *gss_cred = container_of(rc, struct gss_cred, gc_base);
>> struct gss_cl_ctx *ctx;
>> unsigned long now = jiffies;
>> - unsigned long expire;
>> + unsigned long expire = 0;
>>
>> rcu_read_lock();
>> ctx = rcu_dereference(gss_cred->gc_ctx);
>> --
>> 1.7.1
>
> That would be a compiler bug, not a kernel bug. The kernel code is
> perfectly correct as it stands, and will never access the
> uninitialised variable.
>

Than you will need the infamous uninitialised_var()

diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
index afb292c..bea0951 100644
--- a/net/sunrpc/auth_gss/auth_gss.c
+++ b/net/sunrpc/auth_gss/auth_gss.c
@@ -1387,7 +1387,7 @@ gss_key_timeout(struct rpc_cred *rc)
struct gss_cred *gss_cred = container_of(rc, struct gss_cred, gc_base);
struct gss_cl_ctx *ctx;
unsigned long now = jiffies;
- unsigned long expire;
+ unsigned long uninitialised_var(expire);

rcu_read_lock();
ctx = rcu_dereference(gss_cred->gc_ctx);

Cheers
Boaz