mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Fix loss of buffer in NSJSONSerialization.
The first time bufferSize is extended, number loses the previously parsed characters. After malloc the number, copy the numberBuffer to the number.
This commit is contained in:
parent
40a482a579
commit
6869df9a50
1 changed files with 8 additions and 3 deletions
|
@ -468,11 +468,16 @@ parseNumber(ParserState *state)
|
|||
{\
|
||||
bufferSize *= 2;\
|
||||
if (number == numberBuffer)\
|
||||
number = malloc(bufferSize);\
|
||||
{\
|
||||
number = malloc(bufferSize);\
|
||||
memcpy(number, numberBuffer, sizeof(numberBuffer));\
|
||||
}\
|
||||
else\
|
||||
number = realloc(number, bufferSize);\
|
||||
{\
|
||||
number = realloc(number, bufferSize);\
|
||||
}\
|
||||
}\
|
||||
number[parsedSize++] = (char)x; } while (0)
|
||||
number[parsedSize++] = (char)x; } while (0)
|
||||
// JSON numbers must start with a - or a digit
|
||||
if (!(c == '-' || isdigit(c)))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue