diff options
author | ai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2010-11-23 11:56:44 +0000 |
---|---|---|
committer | ai4rei <ai4rei@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2010-11-23 11:56:44 +0000 |
commit | 326bb46c02abb20c39239b2067f3bf4df884cbe3 (patch) | |
tree | af0d93f151158654c5e0d1838d0336723db27c69 | |
parent | 959fcb568df0534989eba2f23870a12aaecb91a2 (diff) | |
download | hercules-326bb46c02abb20c39239b2067f3bf4df884cbe3.tar.gz hercules-326bb46c02abb20c39239b2067f3bf4df884cbe3.tar.bz2 hercules-326bb46c02abb20c39239b2067f3bf4df884cbe3.tar.xz hercules-326bb46c02abb20c39239b2067f3bf4df884cbe3.zip |
* Labels longer than 23 characters will no longer cause the server to exit immediately (bugreport:4563, since r1213).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/renewal@14494 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | Changelog-Renewal.txt | 1 | ||||
-rw-r--r-- | src/map/npc.c | 19 |
2 files changed, 11 insertions, 9 deletions
diff --git a/Changelog-Renewal.txt b/Changelog-Renewal.txt index c2619d632..a24133031 100644 --- a/Changelog-Renewal.txt +++ b/Changelog-Renewal.txt @@ -8,6 +8,7 @@ Date Added - Fixed data type inconsistency in @statuspoint and @skillpoint (since r5762, related r13541). - Silenced truncation warnings in CR_ACIDDEMONSTRATION damage calculation and cardfix application (since r13700). - Reformatted unit_blown to make it look cleaner (follow up to r14492). + * Labels longer than 23 characters will no longer cause the server to exit immediately (bugreport:4563, since r1213). 2010/11/22 * mail_deliveryfail no longer attempts to log (since r12910) and give items (since r11855), when there is no item attached to the mail (bugreport:3239). [Ai4rei] * Fixed a crash when shutting down char-server (TXT only), after it failed to load storage save data (since r1275). [Ai4rei] diff --git a/src/map/npc.c b/src/map/npc.c index 95981ad55..dcfa52193 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -1940,14 +1940,6 @@ int npc_convertlabel_db(DBKey key, void* data, va_list ap) nullpo_ret(label_list_num = va_arg(ap,int*)); nullpo_ret(filepath = va_arg(ap,const char*)); - if( *label_list == NULL ) - { - *label_list = (struct npc_label_list *) aCallocA (1, sizeof(struct npc_label_list)); - *label_list_num = 0; - } else - *label_list = (struct npc_label_list *) aRealloc (*label_list, sizeof(struct npc_label_list)*(*label_list_num+1)); - label = *label_list+*label_list_num; - // In case of labels not terminated with ':', for user defined function support p = lname; while( ISALNUM(*p) || *p == '_' ) @@ -1958,8 +1950,17 @@ int npc_convertlabel_db(DBKey key, void* data, va_list ap) if( len > 23 ) { ShowError("npc_parse_script: label name longer than 23 chars! '%s'\n (%s)", lname, filepath); - exit(EXIT_FAILURE); + return 0; } + + if( *label_list == NULL ) + { + *label_list = (struct npc_label_list *) aCallocA (1, sizeof(struct npc_label_list)); + *label_list_num = 0; + } else + *label_list = (struct npc_label_list *) aRealloc (*label_list, sizeof(struct npc_label_list)*(*label_list_num+1)); + label = *label_list+*label_list_num; + safestrncpy(label->name, lname, sizeof(label->name)); label->pos = lpos; ++(*label_list_num); |