Powered by Linux
Re: net/vmw_vsock/af_vsock.c:616 __vsock_create() error: potential NULL dereference 'psk'. — Semantic Matching Tool

Re: net/vmw_vsock/af_vsock.c:616 __vsock_create() error: potential NULL dereference 'psk'.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Added the smatch list to the CC list.

On Thu, Feb 14, 2013 at 10:33:19AM +0800, Fengguang Wu wrote:
> On Mon, Feb 11, 2013 at 11:41:32PM +0300, Dan Carpenter wrote:
> > False positive.  It should get this correct.  One thing that would
> > cause this is if it it thought all the callers pass a NULL value
> > for "parent".
> > 
> > You could test this theory with the following command:
> > ~/progs/smatch/devel/smatch_scripts/db/smdb_param_values.sh __vsock_create 2
> 
> What's the expected output? I no output at all when running the
> command under $KBUILD_OUTPUT. But note that my smatch_db.sqlite
> is updated on every kernel build, so it's current content may not
> match the commit discussed here well.

I'm messing with my database right now but hopefully this is
something close to correct:

net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->__sk_common.skc_state|255
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->sk_ack_backlog|0-65534
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->sk_lock.owned|1
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->sk_lock.slock.rlock.owner|(-1)
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->sk_lock.slock.rlock.owner_cpu|u32max
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->sk_max_ack_backlog|1-u16max
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$|4096-s64max
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|1|2|$$|0

My theory was that yours would only have had the line which says:
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|1|2|$$|0

It's weird that you don't have any output at all.

The other command which tells you all the values at the start on
the function is smatch_scripts/db/smdb_function_info.sh.  I should
probably rename that to caller_info.sh because it's just doing a
select * from caller_info;.  There should be a minimum of one entry
per call.

$ ~/progs/smatch/devel/smatch_scripts/db/smdb_function_info.sh  __vsock_create
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|4|2|$$->sk_ack_backlog|1
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->__sk_common.skc_state|255
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->sk_ack_backlog|0-65534
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->sk_lock.owned|1
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->sk_lock.slock.rlock.owner|(-1)
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->sk_lock.slock.rlock.owner_cpu|u32max
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$->sk_max_ack_backlog|1-u16max
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|4|1|$$|1
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|4|2|$$|1
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|4|3|$$|1
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|0|$$|s64min-s64max
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|1|$$|0
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|2|$$|4096-s64max
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|3|$$|208
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|1|4|$$|0-u16max
net/vmw_vsock/vmci_transport.c|vmci_transport_recv_listen|__vsock_create|143204|0|0|-1||
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|4|1|$$->ops|1
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|4|1|$$->state|1
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|2|1|$$->ops|184
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|1|1|$$->ops|4096-s64max
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|1|1|$$->state|1
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|1|1|$$->type|1-2
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|4|0|$$|1
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|4|1|$$|1
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|4|2|$$|1
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|4|3|$$|1
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|4|4|$$|1
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|1|0|$$|s64min-s64max
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|1|1|$$|4096-s64max
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|1|2|$$|0
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|1|3|$$|208
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|1|4|$$|0
net/vmw_vsock/af_vsock.c|vsock_create|__vsock_create|143467|0|0|-1||

regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe smatch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux