linux-4.2-rc6/fs/afs/server.c:210:Possible null pointer dereference
David Binderman
dcb314 at hotmail.com
Mon Aug 10 08:38:26 PDT 2015
Hello there,
----------------------------------------
>> server = NULL;
>>
>> then a few lines later server has -> applied to it.
>>
>> ASSERTIFCMP(server, server->addr.s_addr, ==, addr.s_addr);
>
> There is no NULL derefernce there.
>
> #define ASSERTIFCMP(C, X, OP, Y) do { if (unlikely((C) && !((X) OP (Y)))) { printk(KERN_ERR "\n"); printk(KERN_ERR "AFS: Assertion failed\n"); printk(KERN_ERR "%lu " #OP " %lu is false\n", (unsigned long)(X), (unsigned long)(Y)); printk(KERN_ERR "0x%lx " #OP " 0x%lx is false\n", (unsigned long)(X), (unsigned long)(Y)); BUG(); } } while(0)
Let's have another go. More detail:
In the define, X is server->addr.s_addr, Y is addr.s_addr, OP is == and so
!((X) OP (Y))
evaluates to
!((server->addr.s_addr == addr.s_addr))
Since server is NULL, that looks like a NULL dereference to me.
Regards
David Binderman
More information about the linux-afs
mailing list