From owner-cvs-src-old@FreeBSD.ORG Wed Jan 19 17:17:48 2011 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 96F7A1065707 for ; Wed, 19 Jan 2011 17:17:48 +0000 (UTC) (envelope-from dwmalone@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 856928FC0C for ; Wed, 19 Jan 2011 17:17:48 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p0JHHm4O003546 for ; Wed, 19 Jan 2011 17:17:48 GMT (envelope-from dwmalone@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p0JHHm68003545 for cvs-src-old@freebsd.org; Wed, 19 Jan 2011 17:17:48 GMT (envelope-from dwmalone@repoman.freebsd.org) Message-Id: <201101191717.p0JHHm68003545@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to dwmalone@repoman.freebsd.org using -f From: David Malone Date: Wed, 19 Jan 2011 17:17:37 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/usr.sbin/syslogd syslogd.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Jan 2011 17:17:48 -0000 dwmalone 2011-01-19 17:17:37 UTC FreeBSD src repository Modified files: usr.sbin/syslogd syslogd.c Log: SVN rev 217589 on 2011-01-19 17:17:37Z by dwmalone Here v->iov_len has been assigned the return value from snprintf. Checking if it is > 0 doesn't make sense, because snprintf returns how much space is needed if the buffer is too small. Instead, check if the return value was greater than the buffer size, and truncate the message if it was too long. It isn't clear if snprintf can return a negative value in the case of an error - I don't believe it can. If it can, then testing v->iov_len won't help 'cos it is a size_t, not an ssize_t. Also, as clang points out, we must always increment v here, because later code depends on the message being in iov[5]. Revision Changes Path 1.168 +3 -2 src/usr.sbin/syslogd/syslogd.c