aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJesper Nilsson <jesper.nilsson@axis.com>2010-08-03 13:14:29 -0400
committerJesper Nilsson <jesper.nilsson@axis.com>2010-08-04 07:02:36 -0400
commitda2af0a771caa8f8cff9c7bfc979f0510eb0faea (patch)
tree7cd5825126d90c9ca91c35e294d8c6d0df9fa289 /arch
parent2dc1c40c6e81ba406f2f6b00fe5eecb4c7cf1197 (diff)
CRIS: __do_strncpy_from_user: Don't read the byte beyond the nil
Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/cris/include/arch-v32/arch/uaccess.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/cris/include/arch-v32/arch/uaccess.h b/arch/cris/include/arch-v32/arch/uaccess.h
index 6b207f1b6622..3196019706cb 100644
--- a/arch/cris/include/arch-v32/arch/uaccess.h
+++ b/arch/cris/include/arch-v32/arch/uaccess.h
@@ -122,14 +122,14 @@ __do_strncpy_from_user(char *dst, const char *src, long count)
122 __asm__ __volatile__ ( 122 __asm__ __volatile__ (
123 " move.d %3,%0\n" 123 " move.d %3,%0\n"
124 "5: move.b [%2+],$acr\n" 124 "5: move.b [%2+],$acr\n"
125 "1: beq 2f\n" 125 "1: beq 6f\n"
126 " move.b $acr,[%1+]\n" 126 " move.b $acr,[%1+]\n"
127 127
128 " subq 1,%0\n" 128 " subq 1,%0\n"
129 "2: bne 1b\n" 129 "2: bne 1b\n"
130 " move.b [%2+],$acr\n" 130 " move.b [%2+],$acr\n"
131 131
132 " sub.d %3,%0\n" 132 "6: sub.d %3,%0\n"
133 " neg.d %0,%0\n" 133 " neg.d %0,%0\n"
134 "3:\n" 134 "3:\n"
135 " .section .fixup,\"ax\"\n" 135 " .section .fixup,\"ax\"\n"
@@ -140,8 +140,7 @@ __do_strncpy_from_user(char *dst, const char *src, long count)
140 /* The address for a fault at the first move is trivial. 140 /* The address for a fault at the first move is trivial.
141 The address for a fault at the second move is that of 141 The address for a fault at the second move is that of
142 the preceding branch insn, since the move insn is in 142 the preceding branch insn, since the move insn is in
143 its delay-slot. That address is also a branch 143 its delay-slot. Just so you don't get confused... */
144 target. Just so you don't get confused... */
145 " .previous\n" 144 " .previous\n"
146 " .section __ex_table,\"a\"\n" 145 " .section __ex_table,\"a\"\n"
147 " .dword 5b,4b\n" 146 " .dword 5b,4b\n"