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