All of lore.kernel.org
 help / color / mirror / Atom feed
* SUNRPC: Checking a kmemdup() call in xdr_netobj_dup()
@ 2019-10-12 18:20 ` Markus Elfring
  0 siblings, 0 replies; 5+ messages in thread
From: Markus Elfring @ 2019-10-12 18:20 UTC (permalink / raw)
  To: linux-nfs, Anna Schumaker, Chuck Lever, J. Bruce Fields, Trond Myklebust
  Cc: LKML, kernel-janitors, Aditya Pakki, Kangjie Lu, Navid Emamdoost,
	Stephen McCamant

Hello,

I tried another script for the semantic patch language out.
This source code analysis approach points out that the implementation
of the function “xdr_netobj_dup” contains still an unchecked call
of the function “kmemdup”.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/sunrpc/xdr.h?id=1c0cc5f1ae5ee5a6913704c0d75a6e99604ee30a#n167
https://elixir.bootlin.com/linux/v5.4-rc2/source/include/linux/sunrpc/xdr.h#L167

How do you think about to improve it?

Regards,
Markus

^ permalink raw reply	[flat|nested] 5+ messages in thread

* SUNRPC: Checking a kmemdup() call in xdr_netobj_dup()
@ 2019-10-12 18:20 ` Markus Elfring
  0 siblings, 0 replies; 5+ messages in thread
From: Markus Elfring @ 2019-10-12 18:20 UTC (permalink / raw)
  To: linux-nfs, Anna Schumaker, Chuck Lever, J. Bruce Fields, Trond Myklebust
  Cc: LKML, kernel-janitors, Aditya Pakki, Kangjie Lu, Navid Emamdoost,
	Stephen McCamant

Hello,

I tried another script for the semantic patch language out.
This source code analysis approach points out that the implementation
of the function “xdr_netobj_dup” contains still an unchecked call
of the function “kmemdup”.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/sunrpc/xdr.h?id=1c0cc5f1ae5ee5a6913704c0d75a6e99604ee30a#n167
https://elixir.bootlin.com/linux/v5.4-rc2/source/include/linux/sunrpc/xdr.h#L167

How do you think about to improve it?

Regards,
Markus

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: SUNRPC: Checking a kmemdup() call in xdr_netobj_dup()
  2019-10-12 18:20 ` Markus Elfring
@ 2019-10-14 22:33   ` J. Bruce Fields
  -1 siblings, 0 replies; 5+ messages in thread
From: J. Bruce Fields @ 2019-10-14 22:33 UTC (permalink / raw)
  To: Markus Elfring
  Cc: linux-nfs, Anna Schumaker, Chuck Lever, Trond Myklebust, LKML,
	kernel-janitors, Aditya Pakki, Kangjie Lu, Navid Emamdoost,
	Stephen McCamant

On Sat, Oct 12, 2019 at 08:20:04PM +0200, Markus Elfring wrote:
> I tried another script for the semantic patch language out.
> This source code analysis approach points out that the implementation
> of the function “xdr_netobj_dup” contains still an unchecked call
> of the function “kmemdup”.
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/sunrpc/xdr.h?id=1c0cc5f1ae5ee5a6913704c0d75a6e99604ee30a#n167
> https://elixir.bootlin.com/linux/v5.4-rc2/source/include/linux/sunrpc/xdr.h#L167
> 
> How do you think about to improve it?

On a quick check--I see five xdr_netobj_dup callers, and all of them
check whether dst->data is NULL.

Sounds like a false positive for your tool?

--b.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: SUNRPC: Checking a kmemdup() call in xdr_netobj_dup()
@ 2019-10-14 22:33   ` J. Bruce Fields
  0 siblings, 0 replies; 5+ messages in thread
From: J. Bruce Fields @ 2019-10-14 22:33 UTC (permalink / raw)
  To: Markus Elfring
  Cc: linux-nfs, Anna Schumaker, Chuck Lever, Trond Myklebust, LKML,
	kernel-janitors, Aditya Pakki, Kangjie Lu, Navid Emamdoost,
	Stephen McCamant

On Sat, Oct 12, 2019 at 08:20:04PM +0200, Markus Elfring wrote:
> I tried another script for the semantic patch language out.
> This source code analysis approach points out that the implementation
> of the function “xdr_netobj_dup” contains still an unchecked call
> of the function “kmemdup”.
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/sunrpc/xdr.h?id\x1c0cc5f1ae5ee5a6913704c0d75a6e99604ee30a#n167
> https://elixir.bootlin.com/linux/v5.4-rc2/source/include/linux/sunrpc/xdr.h#L167
> 
> How do you think about to improve it?

On a quick check--I see five xdr_netobj_dup callers, and all of them
check whether dst->data is NULL.

Sounds like a false positive for your tool?

--b.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: SUNRPC: Checking a kmemdup() call in xdr_netobj_dup()
  2019-10-14 22:33   ` J. Bruce Fields
  (?)
@ 2019-10-15  5:44   ` Markus Elfring
  -1 siblings, 0 replies; 5+ messages in thread
From: Markus Elfring @ 2019-10-15  5:44 UTC (permalink / raw)
  To: J. Bruce Fields, linux-nfs
  Cc: Anna Schumaker, Chuck Lever, Trond Myklebust, Aditya Pakki,
	Kangjie Lu, Navid Emamdoost, Stephen McCamant, LKML

>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/sunrpc/xdr.h?id=1c0cc5f1ae5ee5a6913704c0d75a6e99604ee30a#n167
>> https://elixir.bootlin.com/linux/v5.4-rc2/source/include/linux/sunrpc/xdr.h#L167
>>
>> How do you think about to improve it?
>
> On a quick check--I see five xdr_netobj_dup callers, and all of them
> check whether dst->data is NULL.

Your information is appropriate.
https://elixir.bootlin.com/linux/v5.4-rc2/ident/xdr_netobj_dup

Such a Linux source code cross reference can point out that the function “xdr_netobj_dup”
is used only within the source file “fs/nfsd/nfs4state.c” so far.


> Sounds like a false positive for your tool?

This depends on the software development view you would prefer here.
The desired null pointer checks are just not performed by the mentioned
(inline) function itself.
I imagine then that a dedicated macro might help to stress software design constraints.

Regards,
Markus

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-10-15  5:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-12 18:20 SUNRPC: Checking a kmemdup() call in xdr_netobj_dup() Markus Elfring
2019-10-12 18:20 ` Markus Elfring
2019-10-14 22:33 ` J. Bruce Fields
2019-10-14 22:33   ` J. Bruce Fields
2019-10-15  5:44   ` Markus Elfring

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.