Fix segfault on wide terminal with long tearline, tagline or origin. Bugreport from 2:5059/37

This commit is contained in:
Stas Degteff
2011-12-01 10:13:51 +00:00
parent f22d4dd7f3
commit 1178743894
3 changed files with 8 additions and 3 deletions

View File

@@ -13,6 +13,9 @@ _____________________________________________________________________________
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A5AD>: "-" - <20><><EFBFBD><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>, "+" - <20><><EFBFBD><EFBFBD><EFBFBD>, "!" - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7A5AD>: "-" - <20><><EFBFBD><EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>, "+" - <20><><EFBFBD><EFBFBD><EFBFBD>, "!" - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A2A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
_____________________________________________________________________________ _____________________________________________________________________________
- <20><><EFBFBD><EFBFBD><E0A0A2><EFBFBD><EFBFBD> <20><EFBFBD><E8A8A1>, <20><EFBFBD><E0A8A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><E0A5AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><E0AEAA> <20><><EFBFBD><E0ACA8><EFBFBD><EFBFBD>
<20><><EFBFBD> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A0A3><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><E0ABA0><EFBFBD> <20><><EFBFBD> <20><EFBFBD><E0A8A4><EFBFBD><EFBFBD>.
- <20><><EFBFBD><EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><E4ABA8> <20><> <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20>㭪樥<E3ADAA> pow() <20> Visual Studio 2010. - <20><><EFBFBD><EFBFBD><E0A0AD> <20><><EFBFBD><EFBFBD><E4ABA8> <20><> <20><EFBFBD><E2A0AD><EFBFBD><EFBFBD> <20>㭪樥<E3ADAA> pow() <20> Visual Studio 2010.
+ <20><><EFBFBD> <20><EFBFBD><20><><EFBFBD><E4AEA3><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5AC><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20><><EFBFBD>쪮 ᫮<><E1ABAE>३. + <20><><EFBFBD> <20><EFBFBD><20><><EFBFBD><E4AEA3><20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0A5AC><EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><ECA7AE><EFBFBD><EFBFBD> <20><><EFBFBD>쪮 ᫮<><E1ABAE>३.

View File

@@ -13,6 +13,8 @@ ______________________________________________________________________
Legend: "-" - bugfix, "+" - new feature, "!" - important modification. Legend: "-" - bugfix, "+" - new feature, "!" - important modification.
______________________________________________________________________ ______________________________________________________________________
- Fix segfault on wide terminal with long tearline, tagline or origin.
- The conflict to standard function pow() in Visual Studio 2010 is - The conflict to standard function pow() in Visual Studio 2010 is
eliminated. eliminated.

View File

@@ -1537,7 +1537,7 @@ void ScanKludges(GMsg* msg, int getvalue) {
line->type |= GLINE_TAGL; line->type |= GLINE_TAGL;
line->color = C_READG; line->color = C_READG;
if(AA->Taglinesupport()) if(AA->Taglinesupport())
strbtrim(strcpy(msg->tagline, ptr+3)); strbtrim(strxcpy(msg->tagline, ptr+3, sizeof(msg->tagline)));
} }
} }
@@ -1561,7 +1561,7 @@ void ScanKludges(GMsg* msg, int getvalue) {
} }
tearln->type |= GLINE_TEAR; tearln->type |= GLINE_TEAR;
tearln->color = C_READT; tearln->color = C_READT;
strbtrim(strcpy(msg->tearline, ptr+3)); strbtrim(strxcpy(msg->tearline, ptr+3, sizeof(msg->tearline)));
if(getvalue and CFG->gedhandshake) { if(getvalue and CFG->gedhandshake) {
char* tearid[] = { char* tearid[] = {
@@ -1606,7 +1606,7 @@ void ScanKludges(GMsg* msg, int getvalue) {
originlineno = lineno; originlineno = lineno;
line->type |= GLINE_ORIG; line->type |= GLINE_ORIG;
line->color = C_READO; line->color = C_READO;
strcpy(msg->origin, line->txt.c_str()+11); strxcpy(msg->origin, line->txt.c_str()+11, sizeof(msg->origin));
if(nextor) { // Get the next line too if(nextor) { // Get the next line too
strcat(msg->origin, line->next->txt.c_str()); strcat(msg->origin, line->next->txt.c_str());
line->next->color = C_READO; line->next->color = C_READO;