diff --git a/ChangeLog b/ChangeLog index d375264..3db346f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2014-08-25 Wolfgang Lux + + * Modules/Editors/ProjectCenter/PCEditor.m (unhighlightCharacter:): + * Modules/Editors/ProjectCenter/PCEditor.m + (highlightCharacterAt:inEditor:): + Fix condition order to prevent out of range array accesses, which + may lead to a segfault when unhighlighting two matching parentheses. + + Fix by Markus . + 2014-08-18 16:07-EDT Gregory John Casamento * Modules/Projects/Aggregate/Resources/Inspector.gorm diff --git a/Modules/Editors/ProjectCenter/PCEditor.m b/Modules/Editors/ProjectCenter/PCEditor.m index 3de8e02..c893cd2 100644 --- a/Modules/Editors/ProjectCenter/PCEditor.m +++ b/Modules/Editors/ProjectCenter/PCEditor.m @@ -1228,7 +1228,7 @@ NSUInteger FindDelimiterInString(NSString * string, [textStorage beginEditing]; // if (isCharacterHighlit) - for (i = 0; (highlited_chars[i] != -1 && i < 2); i++) + for (i = 0; i < 2 && highlited_chars[i] != -1; i++) { NSRange r = NSMakeRange(highlited_chars[i], 1); // NSRange r = NSMakeRange(highlitCharacterLocation, i); @@ -1282,7 +1282,7 @@ NSUInteger FindDelimiterInString(NSString * string, { int i; - for (i = 0; highlited_chars[i] != -1; i++) {}; + for (i = 0; i < 2 && highlited_chars[i] != -1; i++) {}; // if (isCharacterHighlit == NO) if (i < 2)