mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 00:41:02 +00:00
stricter base64 decoding
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38602 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
a70eea58a8
commit
d187e70974
2 changed files with 17 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2015-06-08 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSData.m: be strict about '=' padding only occurring at end
|
||||
of base64 encoded data.
|
||||
|
||||
2015-06-04 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSArray.m: Use NSUInteger rather than unsigned, use memory
|
||||
|
|
|
@ -598,7 +598,7 @@ failure:
|
|||
result = (unsigned char*)malloc(declen);
|
||||
dst = result;
|
||||
|
||||
while ((src != end) && *src != '\0')
|
||||
while (src != end)
|
||||
{
|
||||
int c = *src++;
|
||||
|
||||
|
@ -624,6 +624,17 @@ failure:
|
|||
}
|
||||
else if (c == '=')
|
||||
{
|
||||
/* Only legal as padding at end of string */
|
||||
while (src != end)
|
||||
{
|
||||
c = *src++;
|
||||
if (c != '=')
|
||||
{
|
||||
free(result);
|
||||
DESTROY(self);
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
c = -1;
|
||||
}
|
||||
else if (options & NSDataBase64DecodingIgnoreUnknownCharacters)
|
||||
|
|
Loading…
Reference in a new issue