diff --git a/src/helper.c b/src/helper.c index fe02383..a594c26 100644 --- a/src/helper.c +++ b/src/helper.c @@ -261,8 +261,8 @@ int create_helper(int event_fd, int err_fd, uid_t uid, gid_t gid, long max_fd) data.hostname_len + data.ed_len + data.clid_len, RW_READ)) continue; - /* CLID into packet */ - for (p = daemon->packet, i = 0; i < data.clid_len; i++) + /* CLID into packet: limit to 100 bytes to avoid overflowing buffer. */ + for (p = daemon->packet, i = 0; i < data.clid_len && i < 100; i++) { p += sprintf(p, "%.2x", buf[i]); if (i != data.clid_len - 1)