14 lines
489 B
Diff
14 lines
489 B
Diff
Index: usr.sbin/rtsold/rtsol.c
|
|
===================================================================
|
|
--- usr.sbin/rtsold/rtsol.c.orig
|
|
+++ usr.sbin/rtsold/rtsol.c
|
|
@@ -933,7 +933,8 @@
|
|
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);
|