From 4a980893af024ce52a394b5f88c6d3855ba2a8d2 Mon Sep 17 00:00:00 2001 From: itojun Date: Fri, 16 Nov 2001 04:21:57 +0000 Subject: [PATCH] sync with latest openbsd one. this one describes corner case of strlcat better --- lib/libc/string/strlcpy.3 | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/libc/string/strlcpy.3 b/lib/libc/string/strlcpy.3 index aeba45b3c792..ecb7f514e84d 100644 --- a/lib/libc/string/strlcpy.3 +++ b/lib/libc/string/strlcpy.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: strlcpy.3,v 1.7 2001/09/16 01:41:10 wiz Exp $ +.\" $NetBSD: strlcpy.3,v 1.8 2001/11/16 04:21:57 itojun Exp $ .\" from OpenBSD: strlcpy.3,v 1.11 2000/11/16 23:27:41 angelos Exp .\" .\" Copyright (c) 1998, 2000 Todd C. Miller @@ -121,6 +121,27 @@ the length of .Fa src . While this may seem somewhat confusing it was done to make truncation detection simple. +.Pp +Note however, that if +.Fn strlcat +traverses +.Fa size +characters without finding a NUL, the length of the string is considered +to be +.Fa size +and the destination string will not be NUL-terminated (since there was +no space for the NUL). +This keeps +.Fn strlcat +from running off the end of a string. +In practice this should not happen (as it means that either +.Fa size +is incorrect or that +.Fa dst +is not a proper +.Dq C +string). +The check exists to prevent potential security problems in incorrect code. .Sh EXAMPLES The following code fragment illustrates the simple case: .Bd -literal -offset indent