From e19f9f0e6c7c496f101fecb3a73df58c2fd31769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Tue, 19 Apr 2005 18:00:17 +0000 Subject: [PATCH] catch when snprint needs a larger buffer git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14850 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/push/push.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/appl/push/push.c b/appl/push/push.c index 43e3b1037..47cfb8063 100644 --- a/appl/push/push.c +++ b/appl/push/push.c @@ -268,11 +268,13 @@ doit(int s, now = time(NULL); from_line_length = snprintf (from_line, sizeof(from_line), "From %s %s", "push", ctime(&now)); + if (from_line_length < 0 || from_line_length > sizeof(from_line)) + errx (1, "snprintf failed"); out_len = snprintf (out_buf, sizeof(out_buf), "USER %s\r\nPASS hej\r\nSTAT\r\n", user); - if (out_len < 0) + if (out_len < 0 || out_len > sizeof(out_buf)) errx (1, "snprintf failed"); if (net_write (s, out_buf, out_len) != out_len) err (1, "write"); @@ -490,7 +492,7 @@ doit(int s, else if(state == DELE) out_len = snprintf (out_buf, sizeof(out_buf), "DELE %u\r\n", ++asked_deleted); - if (out_len < 0) + if (out_len < 0 || out_len > sizeof(out_buf)) errx (1, "snprintf failed"); if (net_write (s, out_buf, out_len) != out_len) err (1, "write");