From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tim Deegan Subject: [PATCH 1/4] common/vsprintf: Explicitly treat negative lengths as 'unlimited' Date: Thu, 28 Nov 2013 16:37:42 +0000 Message-ID: <1385656665-12551-2-git-send-email-tim@xen.org> References: <1385656665-12551-1-git-send-email-tim@xen.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1385656665-12551-1-git-send-email-tim@xen.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org The old code relied on implictly casting negative numbers to size_t making a very large limit, which was correct but non-obvious. Coverity CID 1128575 Signed-off-by: Tim Deegan --- xen/common/vsprintf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/common/vsprintf.c b/xen/common/vsprintf.c index 43dc392..68553bb 100644 --- a/xen/common/vsprintf.c +++ b/xen/common/vsprintf.c @@ -239,7 +239,7 @@ static char *number( static char *string(char *str, char *end, const char *s, int field_width, int precision, int flags) { - int i, len = strnlen(s, precision); + int i, len = (precision < 0) ? strlen(s) : strnlen(s, precision); if (!(flags & LEFT)) { while (len < field_width--) { -- 1.8.4.rc3