From b2ecb4ad211f06101a3024803fec607661704100 Mon Sep 17 00:00:00 2001 From: mycroft Date: Wed, 3 Nov 1999 16:21:22 +0000 Subject: [PATCH] In copy*str(), explicitly check for maxlen==0, rather than implicitly making it act like 2^32. Tested by: simonb --- sys/arch/mips/mips/locore.S | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sys/arch/mips/mips/locore.S b/sys/arch/mips/mips/locore.S index dbc194347b9a..e8b71538351d 100644 --- a/sys/arch/mips/mips/locore.S +++ b/sys/arch/mips/mips/locore.S @@ -1,4 +1,4 @@ -/* $NetBSD: locore.S,v 1.77 1999/09/25 00:00:38 shin Exp $ */ +/* $NetBSD: locore.S,v 1.78 1999/11/03 16:21:22 mycroft Exp $ */ /* * Copyright (c) 1992, 1993 @@ -560,6 +560,7 @@ END(_splnone) */ LEAF(copystr) move t0, a2 + beq a2, zero, 4f 1: lbu v0, 0(a0) subu a2, a2, 1 @@ -568,6 +569,7 @@ LEAF(copystr) addu a0, a0, 1 bne a2, zero, 1b # less than maxlen addu a1, a1, 1 +4: li v0, ENAMETOOLONG # run out of space 2: beq a3, zero, 3f # return num. of copied bytes @@ -591,6 +593,7 @@ LEAF(copyinstr) blt a0, zero, _C_LABEL(copystrerr) sw v0, U_PCB_ONFAULT(v1) move t0, a2 + beq a2, zero, 4f 1: lbu v0, 0(a0) subu a2, a2, 1 @@ -599,6 +602,7 @@ LEAF(copyinstr) addu a0, a0, 1 bne a2, zero, 1b addu a1, a1, 1 +4: li v0, ENAMETOOLONG 2: beq a3, zero, 3f @@ -622,6 +626,7 @@ LEAF(copyoutstr) blt a1, zero, _C_LABEL(copystrerr) sw v0, U_PCB_ONFAULT(v1) move t0, a2 + beq a2, zero, 4f 1: lbu v0, 0(a0) subu a2, a2, 1 @@ -630,6 +635,7 @@ LEAF(copyoutstr) addu a0, a0, 1 bne a2, zero, 1b addu a1, a1, 1 +4: li v0, ENAMETOOLONG 2: beq a3, zero, 3f