From: Frédéric Marchal Date: Mon, 13 Jul 2009 08:25:29 +0000 (+0000) Subject: Avoid a buffer overflow if the language file contains more lines than expected. X-Git-Tag: v2_2_6~59 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07e9bc49dfd469de76c7fa4b1f541e464909bf9c;p=thirdparty%2Fsarg.git 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. --- 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