diff options
author | hrs <hrs@FreeBSD.org> | 2014-10-11 20:46:06 +0000 |
---|---|---|
committer | hrs <hrs@FreeBSD.org> | 2014-10-11 20:46:06 +0000 |
commit | a9647f4732da9b517eec6d174a7c1f2441443729 (patch) | |
tree | 3a5a2770f168a3c56c1ae260bc9851eea6389fa5 /usr.sbin | |
parent | ab0d138ede761ad218858e4c784f261517032129 (diff) | |
download | FreeBSD-src-a9647f4732da9b517eec6d174a7c1f2441443729.zip FreeBSD-src-a9647f4732da9b517eec6d174a7c1f2441443729.tar.gz |
Fix buffer overrun.
MFC after: 1 day
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/rtsold/rtsol.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/usr.sbin/rtsold/rtsol.c b/usr.sbin/rtsold/rtsol.c index c9b3d44..118206a 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); |