From 04b8d4690df9fc46871c51404be53432a8e1c278 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Thu, 10 Mar 2011 21:48:15 +0100 Subject: [PATCH] fix possible buffer underrun by 1 --- citadel/control.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/citadel/control.c b/citadel/control.c index 242cac816..2e5bf43c8 100644 --- a/citadel/control.c +++ b/citadel/control.c @@ -686,9 +686,12 @@ void cmd_conf(char *argbuf) extract_token(confname, argbuf, 1, '|', sizeof confname); confptr = CtdlGetSysConfig(confname); if (confptr != NULL) { + long len; + + len = strlen(confptr); cprintf("%d %s\n", LISTING_FOLLOWS, confname); - client_write(confptr, strlen(confptr)); - if (confptr[strlen(confptr) - 1] != 10) + client_write(confptr, len); + if ((len > 0) && (confptr[len - 1] != 10)) client_write("\n", 1); cprintf("000\n"); free(confptr); -- 2.30.2