lkml.org 
[lkml]   [1999]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: 2.2.13-pre6 build failed (gcc-2.95.1)
On Sun, Sep 12, 1999 at 08:16:29PM -0400, Horst von Brand wrote:
> BTW, the function definition itself bothers me a lot: it is called
> strnlen_user; but doesn't return the string's length, but its size; or some
> weird values that signal various errors. I'd clean it up to return a string
> length (I can see the unending patches "fixing" the uses assuming it
> returns a proper length...), -EFAULT for bad addresses, or -E2BIG (?) for
> strings that are too long.

Meanwhile, this patch would make all versions of gcc happy.

Ivan.

--- linux-2.2.13ac7/arch/i386/lib/usercopy.c Mon Sep 13 14:10:43 1999
+++ linux/arch/i386/lib/usercopy.c Mon Sep 13 14:12:13 1999
@@ -123,7 +123,7 @@
long strnlen_user(const char *s, long n)
{
unsigned long mask = -__addr_ok(s);
- unsigned long res;
+ unsigned long res, tmp;

__asm__ __volatile__(
" andl %0,%%ecx\n"
@@ -140,8 +140,8 @@
" .align 4\n"
" .long 0b,2b\n"
".previous"
- :"=r" (n), "=D" (s), "=a" (res)
+ :"=r" (n), "=D" (s), "=a" (res), "=c" (tmp)
:"0" (n), "1" (s), "2" (0), "c" (mask)
- :"cx", "cc");
+ :"cc");
return res & mask;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:53    [W:0.073 / U:0.336 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site