All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] lib/usercopy: fix sparse errors
@ 2017-12-09 16:24 Christophe Leroy
  2017-12-17 17:21 ` Luc Van Oostenryck
  0 siblings, 1 reply; 3+ messages in thread
From: Christophe Leroy @ 2017-12-09 16:24 UTC (permalink / raw)
  To: Al Viro; +Cc: linux-kernel

  CHECK   lib/usercopy.c
lib/usercopy.c:26:13: warning: incorrect type in argument 1 (different address spaces)
lib/usercopy.c:26:13:    expected void const volatile [noderef] <asn:1>*<noident>
lib/usercopy.c:26:13:    got void *to
lib/usercopy.c:27:34: warning: incorrect type in argument 1 (different address spaces)
lib/usercopy.c:27:34:    expected void const volatile *p
lib/usercopy.c:27:34:    got void const [noderef] <asn:1>*from
lib/usercopy.c:28:38: warning: incorrect type in argument 1 (different address spaces)
lib/usercopy.c:28:38:    expected void [noderef] <asn:1>*to
lib/usercopy.c:28:38:    got void *to
lib/usercopy.c:28:42: warning: incorrect type in argument 2 (different address spaces)
lib/usercopy.c:28:42:    expected void const *from
lib/usercopy.c:28:42:    got void const [noderef] <asn:1>*from
lib/usercopy.c:23:15: error: symbol '_copy_to_user' redeclared with different type (originally declared at ./include/linux/uaccess.h:140) - incompatible argument 1 (different address spaces)
  CC      lib/usercopy.o

Fixes: d597580d37377 ("generic ...copy_..._user primitives")
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
 lib/usercopy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/usercopy.c b/lib/usercopy.c
index 15e2e6f..3744b2a 100644
--- a/lib/usercopy.c
+++ b/lib/usercopy.c
@@ -20,7 +20,7 @@ EXPORT_SYMBOL(_copy_from_user);
 #endif
 
 #ifndef INLINE_COPY_TO_USER
-unsigned long _copy_to_user(void *to, const void __user *from, unsigned long n)
+unsigned long _copy_to_user(void __user *to, const void *from, unsigned long n)
 {
 	might_fault();
 	if (likely(access_ok(VERIFY_WRITE, to, n))) {
-- 
2.2.2


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus

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

* Re: [PATCH] lib/usercopy: fix sparse errors
  2017-12-09 16:24 [PATCH] lib/usercopy: fix sparse errors Christophe Leroy
@ 2017-12-17 17:21 ` Luc Van Oostenryck
  2017-12-17 17:31   ` Al Viro
  0 siblings, 1 reply; 3+ messages in thread
From: Luc Van Oostenryck @ 2017-12-17 17:21 UTC (permalink / raw)
  To: Christophe Leroy; +Cc: Al Viro, linux-kernel

On Sat, Dec 09, 2017 at 05:24:24PM +0100, Christophe Leroy wrote:
>   CHECK   lib/usercopy.c
> lib/usercopy.c:26:13: warning: incorrect type in argument 1 (different address spaces)
> lib/usercopy.c:26:13:    expected void const volatile [noderef] <asn:1>*<noident>
> lib/usercopy.c:26:13:    got void *to
> lib/usercopy.c:27:34: warning: incorrect type in argument 1 (different address spaces)
> lib/usercopy.c:27:34:    expected void const volatile *p
> lib/usercopy.c:27:34:    got void const [noderef] <asn:1>*from
> lib/usercopy.c:28:38: warning: incorrect type in argument 1 (different address spaces)
> lib/usercopy.c:28:38:    expected void [noderef] <asn:1>*to
> lib/usercopy.c:28:38:    got void *to
> lib/usercopy.c:28:42: warning: incorrect type in argument 2 (different address spaces)
> lib/usercopy.c:28:42:    expected void const *from
> lib/usercopy.c:28:42:    got void const [noderef] <asn:1>*from
> lib/usercopy.c:23:15: error: symbol '_copy_to_user' redeclared with different type (originally declared at ./include/linux/uaccess.h:140) - incompatible argument 1 (different address spaces)
>   CC      lib/usercopy.o
> 
> Fixes: d597580d37377 ("generic ...copy_..._user primitives")
> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> ---
>  lib/usercopy.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/usercopy.c b/lib/usercopy.c
> index 15e2e6f..3744b2a 100644
> --- a/lib/usercopy.c
> +++ b/lib/usercopy.c
> @@ -20,7 +20,7 @@ EXPORT_SYMBOL(_copy_from_user);
>  #endif
>  
>  #ifndef INLINE_COPY_TO_USER
> -unsigned long _copy_to_user(void *to, const void __user *from, unsigned long n)
> +unsigned long _copy_to_user(void __user *to, const void *from, unsigned long n)
>  {
>  	might_fault();
>  	if (likely(access_ok(VERIFY_WRITE, to, n))) {
> -- 

Hi,

The change is good.
The commit message would better simply describe the problem instead
of describing the symptom. For example, something like:
	The function _copy_to_user() is used to copy to address space.
	As such, the destination pointer should be annotated with
	'__user'.
	However, the function has the annotation wrongly, on the
	source instead of the destination (copy & paste error?).
	Fix this by moving the __user annotation to the correct
	argument.


-- Luc Van Oostenryck

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

* Re: [PATCH] lib/usercopy: fix sparse errors
  2017-12-17 17:21 ` Luc Van Oostenryck
@ 2017-12-17 17:31   ` Al Viro
  0 siblings, 0 replies; 3+ messages in thread
From: Al Viro @ 2017-12-17 17:31 UTC (permalink / raw)
  To: Luc Van Oostenryck; +Cc: Christophe Leroy, linux-kernel

> The change is good.
> The commit message would better simply describe the problem instead
> of describing the symptom. For example, something like:
> 	The function _copy_to_user() is used to copy to address space.
> 	As such, the destination pointer should be annotated with
> 	'__user'.
> 	However, the function has the annotation wrongly, on the
> 	source instead of the destination (copy & paste error?).
> 	Fix this by moving the __user annotation to the correct
> 	argument.

FWIW, I've committed it with 

Fix misannotated out-of-line _copy_to_user()

Destination is a kernel pointer and source - a userland one
is _copy_from_user(); _copy_to_user() is the other way round.

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

end of thread, other threads:[~2017-12-17 17:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-09 16:24 [PATCH] lib/usercopy: fix sparse errors Christophe Leroy
2017-12-17 17:21 ` Luc Van Oostenryck
2017-12-17 17:31   ` Al Viro

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.