From 07e9bc49dfd469de76c7fa4b1f541e464909bf9c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20Marchal?= Date: Mon, 13 Jul 2009 08:25:29 +0000 Subject: [PATCH] Avoid a buffer overflow if the language file contains more lines than expected. Display the name of the language file being red when displaying the texts. --- language.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/language.c b/language.c index 625747b..2afa6d3 100644 --- a/language.c +++ b/language.c @@ -30,6 +30,7 @@ void language_load(const char *language) { char lfile[FILENAME_MAX]; FILE *fp_text; + char buf[MAXLEN]; int record=0; if (snprintf(lfile,sizeof(lfile),"%s/languages/%s",SYSCONFDIR,language)>=sizeof(lfile)) { @@ -41,8 +42,10 @@ void language_load(const char *language) fprintf(stderr, "SARG: (language) Cannot open language file: %s\n",lfile); exit(1); } + if(langcode) + printf("Reading language from %s\n",lfile); - while(fgets(buf,MAXLEN,fp_text)!=NULL) { + while(record