mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
fix for overrun when searching backwards (spotted by Fred using valgrind)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36204 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
3f3350e4d7
commit
60c04b53e6
4 changed files with 36 additions and 6 deletions
|
@ -1,3 +1,10 @@
|
|||
2013-02-28 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Tests/base/NSString/test00.m: Add a few tests for searching subrange
|
||||
of a string.
|
||||
* Source/GSString.m: ([rangeOfCharacterFromSet:options:range:])
|
||||
Fix for overrun when searching backwards ... spotted by Fred.
|
||||
|
||||
2013-02-17 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/GSAvahiRunLoopIntegration.m: Remove code which was clearing
|
||||
|
|
|
@ -646,8 +646,8 @@ GSAvahiEntryGroupStateChanged(AvahiEntryGroup *group,
|
|||
if ([[self delegate] respondsToSelector:
|
||||
@selector(netService:didUpdateAddresses:)])
|
||||
{
|
||||
[[self delegate] netService: service
|
||||
didUpdateAddresses: addresses];
|
||||
[(id)[self delegate] netService: service
|
||||
didUpdateAddresses: addresses];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -680,9 +680,9 @@ didUpdateRecordData: (id)data
|
|||
else if ([[self delegate] respondsToSelector:
|
||||
@selector(netService:didUpdateRecordData:forRecordType:)])
|
||||
{
|
||||
[[self delegate] netService: service
|
||||
didUpdateRecordData: data
|
||||
forRecordType: rrType];
|
||||
[(id)[self delegate] netService: service
|
||||
didUpdateRecordData: data
|
||||
forRecordType: rrType];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1676,6 +1676,14 @@ didUpdateRecordData: (id)data
|
|||
forRecordType: rrType];
|
||||
}
|
||||
|
||||
#if GS_USE_AVAHI==1
|
||||
- (id<NSObject,GSNetServiceDelegate>)delegate
|
||||
#else
|
||||
- (id<NSObject>)delegate
|
||||
#endif
|
||||
{
|
||||
return _delegate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dispatcher method for error notifications to the delegate.
|
||||
|
|
|
@ -5638,7 +5638,7 @@ literalIsEqual(NXConstantString *self, id anObject)
|
|||
buf[pos] = nextUTF8((const uint8_t *)nxcsptr, nxcslen, &i, &n);
|
||||
}
|
||||
index = stop;
|
||||
while (index-- > 0)
|
||||
while (index-- > start)
|
||||
{
|
||||
if ((*mImp)(aSet, @selector(characterIsMember:), buf[--pos]))
|
||||
{
|
||||
|
|
|
@ -341,16 +341,31 @@ int main()
|
|||
NSCaseInsensitiveSearch | NSBackwardsSearch,
|
||||
NSMakeRange(0,9), NSMakeRange(8,1));
|
||||
|
||||
strRangeFromSet("boaboaboa",
|
||||
[NSCharacterSet alphanumericCharacterSet],
|
||||
NSCaseInsensitiveSearch | NSBackwardsSearch,
|
||||
NSMakeRange(2,6), NSMakeRange(7,1));
|
||||
|
||||
strRangeFromSet("boaboaboa",
|
||||
[NSCharacterSet whitespaceCharacterSet],
|
||||
NSCaseInsensitiveSearch | NSBackwardsSearch,
|
||||
NSMakeRange(0,9), NSMakeRange(NSNotFound,0));
|
||||
|
||||
strRangeFromSet("boaboaboa",
|
||||
[NSCharacterSet whitespaceCharacterSet],
|
||||
NSCaseInsensitiveSearch | NSBackwardsSearch,
|
||||
NSMakeRange(2,6), NSMakeRange(NSNotFound,0));
|
||||
|
||||
strRangeFromSet("bo boaboa",
|
||||
[NSCharacterSet whitespaceCharacterSet],
|
||||
NSCaseInsensitiveSearch | NSBackwardsSearch,
|
||||
NSMakeRange(0,9), NSMakeRange(2,1));
|
||||
|
||||
strRangeFromSet("bo boaboa",
|
||||
[NSCharacterSet whitespaceCharacterSet],
|
||||
NSCaseInsensitiveSearch | NSBackwardsSearch,
|
||||
NSMakeRange(2,6), NSMakeRange(2,1));
|
||||
|
||||
testLineRange("This is a line of text\n", NSMakeRange(10, 10), NSMakeRange(0, 23));
|
||||
testLineRange("This is a line of text\r\n", NSMakeRange(10, 10), NSMakeRange(0, 24));
|
||||
testLineRange("This is a line of text\r\r", NSMakeRange(10, 10), NSMakeRange(0, 23));
|
||||
|
|
Loading…
Reference in a new issue