summaryrefslogtreecommitdiff
path: root/usr.sbin/rtsold
diff options
context:
space:
mode:
authorHiroki Sato <hrs@FreeBSD.org>2014-10-11 20:46:06 +0000
committerHiroki Sato <hrs@FreeBSD.org>2014-10-11 20:46:06 +0000
commite58fde506cbd72593e9aa1956118e32058e8978c (patch)
tree3a5a2770f168a3c56c1ae260bc9851eea6389fa5 /usr.sbin/rtsold
parent37c7d4443c025122954a6c6447c88e21297c7a40 (diff)
downloadsrc-test2-e58fde506cbd72593e9aa1956118e32058e8978c.tar.gz
src-test2-e58fde506cbd72593e9aa1956118e32058e8978c.zip
Fix buffer overrun.
MFC after: 1 day
Notes
Notes: svn path=/head/; revision=272961
Diffstat (limited to 'usr.sbin/rtsold')
-rw-r--r--usr.sbin/rtsold/rtsol.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/usr.sbin/rtsold/rtsol.c b/usr.sbin/rtsold/rtsol.c
index c9b3d44158a8..118206a4bfcd 100644
--- a/usr.sbin/rtsold/rtsol.c
+++ b/usr.sbin/rtsold/rtsol.c
@@ -933,7 +933,8 @@ dname_labeldec(char *dst, size_t dlen, const char *src)
dst_origin = dst;
memset(dst, '\0', dlen);
while (src && (len = (uint8_t)(*src++) & 0x3f) &&
- (src + len) <= src_last) {
+ (src + len) <= src_last &&
+ (dst - dst_origin < (ssize_t)dlen)) {
if (dst != dst_origin)
*dst++ = '.';
warnmsg(LOG_DEBUG, __func__, "labellen = %zd", len);