![]() | |||||||||||||
Messages in this thread Patch in this message |
From: Gerald Schaefer <geraldsc@de.ibm.com> strnlen_user is supposed to return then length count + 1 if no terminating \0 is found, and it should return 0 on exception. Found by David Howells <dhowells@redhat.com>. Signed-off-by: Gerald Schaefer <geraldsc@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> --- arch/s390/lib/uaccess.S | 6 +++--- arch/s390/lib/uaccess64.S | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff -urpN linux-2.6/arch/s390/lib/uaccess64.S linux-2.6-patched/arch/s390/lib/uaccess64.S --- linux-2.6/arch/s390/lib/uaccess64.S 2006-01-03 04:21:10.000000000 +0100 +++ linux-2.6-patched/arch/s390/lib/uaccess64.S 2006-03-07 07:59:22.000000000 +0100 @@ -194,12 +194,12 @@ __strnlen_user_asm: 0: srst %r2,%r1 jo 0b sacf 0 - jh 1f # \0 found in string ? aghi %r2,1 # strnlen_user result includes the \0 -1: slgr %r2,%r3 + # or return count+1 if \0 not found + slgr %r2,%r3 br %r14 2: sacf 0 - lghi %r2,-EFAULT + slgr %r2,%r2 # return 0 on exception br %r14 .section __ex_table,"a" .quad 0b,2b diff -urpN linux-2.6/arch/s390/lib/uaccess.S linux-2.6-patched/arch/s390/lib/uaccess.S --- linux-2.6/arch/s390/lib/uaccess.S 2006-01-03 04:21:10.000000000 +0100 +++ linux-2.6-patched/arch/s390/lib/uaccess.S 2006-03-07 07:59:22.000000000 +0100 @@ -198,12 +198,12 @@ __strnlen_user_asm: 0: srst %r2,%r1 jo 0b sacf 0 - jh 1f # \0 found in string ? ahi %r2,1 # strnlen_user result includes the \0 -1: slr %r2,%r3 + # or return count+1 if \0 not found + slr %r2,%r3 br %r14 2: sacf 0 - lhi %r2,-EFAULT + slr %r2,%r2 # return 0 on exception br %r14 .section __ex_table,"a" .long 0b,2b - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2006-03-07 07:22 [from the cache] ©2003-2008 | |||||||||||||