소스 검색

* Fixed using main chat nick longer than 15 characters would cause a buffer overflow (bugreport:2671, since r5013).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14537 54d463be-8e91-2dee-dedb-b68131a5f0ec
ai4rei 14 년 전
부모
커밋
5c84df6a15
4개의 변경된 파일4개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 0
      Changelog-Trunk.txt
  2. 1 1
      src/char/inter.c
  3. 1 1
      src/char_sql/inter.c
  4. 1 1
      src/map/map.c

+ 1 - 0
Changelog-Trunk.txt

@@ -1,6 +1,7 @@
 Date	Added
 Date	Added
 
 
 2010/12/01
 2010/12/01
+	* Fixed using main chat nick longer than 15 characters would cause a buffer overflow (bugreport:2671, since r5013). [Ai4rei]
 	* Fixed bAutoSpellOnSkill bonuses could not be chained (bugreport:4421, since r13596). [Ai4rei]
 	* Fixed bAutoSpellOnSkill bonuses could not be chained (bugreport:4421, since r13596). [Ai4rei]
 	* Fixed NPC_TALK message being displayed with EOL character attached (bugreport:4596, since r14270). [Ai4rei]
 	* Fixed NPC_TALK message being displayed with EOL character attached (bugreport:4596, since r14270). [Ai4rei]
 	* Reverted change from r14533 and restored the 3rd field of mob_avail.txt being optional (bugreport:4599, since r14532). [Ai4rei]
 	* Reverted change from r14533 and restored the 3rd field of mob_avail.txt being optional (bugreport:4599, since r14532). [Ai4rei]

+ 1 - 1
src/char/inter.c

@@ -210,7 +210,7 @@ static int inter_config_read(const char *cfgName) {
 		} else if(strcmpi(w1,"log_inter")==0) {
 		} else if(strcmpi(w1,"log_inter")==0) {
 			log_inter = atoi(w2);
 			log_inter = atoi(w2);
 		} else if(strcmpi(w1, "main_chat_nick")==0){	// Main chat nick [LuzZza]
 		} else if(strcmpi(w1, "main_chat_nick")==0){	// Main chat nick [LuzZza]
-			strcpy(main_chat_nick, w2);
+			safestrncpy(main_chat_nick, w2, sizeof(main_chat_nick));
 #endif //TXT_SQL_CONVERT
 #endif //TXT_SQL_CONVERT
 		} else if (strcmpi(w1, "import") == 0) {
 		} else if (strcmpi(w1, "import") == 0) {
 			inter_config_read(w2);
 			inter_config_read(w2);

+ 1 - 1
src/char_sql/inter.c

@@ -235,7 +235,7 @@ static int inter_config_read(const char* cfgName)
 		else if(!strcmpi(w1,"log_inter"))
 		else if(!strcmpi(w1,"log_inter"))
 			log_inter = atoi(w2);
 			log_inter = atoi(w2);
 		else if(!strcmpi(w1,"main_chat_nick"))
 		else if(!strcmpi(w1,"main_chat_nick"))
-			strcpy(main_chat_nick, w2);
+			safestrncpy(main_chat_nick, w2, sizeof(main_chat_nick));
 #endif //TXT_SQL_CONVERT
 #endif //TXT_SQL_CONVERT
 		else if(!strcmpi(w1,"import"))
 		else if(!strcmpi(w1,"import"))
 			inter_config_read(w2);
 			inter_config_read(w2);

+ 1 - 1
src/map/map.c

@@ -3205,7 +3205,7 @@ int inter_config_read(char *cfgName)
 			continue;
 			continue;
 
 
 		if(strcmpi(w1, "main_chat_nick")==0)
 		if(strcmpi(w1, "main_chat_nick")==0)
-			strcpy(main_chat_nick, w2);
+			safestrncpy(main_chat_nick, w2, sizeof(main_chat_nick));
 			
 			
 	#ifndef TXT_ONLY
 	#ifndef TXT_ONLY
 		else
 		else