From 840f97d551a676a4b50815dc29de569298d081b6 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Sat, 26 Sep 2009 13:29:57 +0000 Subject: [PATCH] In read_config_line(), turn overly long lines into fatal errors. Seems more reasonable than silently discarding data or triggering an assertion. --- loaders.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/loaders.c b/loaders.c index ee767186..85c8d296 100644 --- a/loaders.c +++ b/loaders.c @@ -1,4 +1,4 @@ -const char loaders_rcs[] = "$Id: loaders.c,v 1.72 2009/04/24 15:29:43 fabiankeil Exp $"; +const char loaders_rcs[] = "$Id: loaders.c,v 1.73 2009/05/16 13:27:20 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/loaders.c,v $ @@ -760,10 +760,14 @@ char *read_config_line(char *buf, size_t buflen, FILE *fp, unsigned long *linenu else { assert(buf2); - assert(strlen(buf2) + 1U < buflen); - strncpy(buf, buf2, buflen - 1); + if (strlen(buf2) + 1U > buflen) + { + log_error(LOG_LEVEL_FATAL, + "Max line limit reached. Linenumber: %u. Lenght: %u. Max lenght: %u.", + *linenum, strlen(buf2), buflen-1); + } + strlcpy(buf, buf2, buflen); free(buf2); - buf[buflen - 1] = '\0'; return buf; } } -- 2.39.2