22 lines
877 B
Diff
22 lines
877 B
Diff
|
The value of tmpResult may be -1 in which case setting
|
||
|
currentBufferSize = -1 leads to an error when trying to
|
||
|
allocate the buffers.
|
||
|
|
||
|
If tmpResult is less than currentBufferSize simply double
|
||
|
currentBufferSize until parsing the flags succeeds.
|
||
|
|
||
|
--- source/tools/pkgdata/pkgdata.cpp 2015-10-08 05:54:02.000000000 +0200
|
||
|
+++ source/tools/pkgdata/pkgdata.cpp 2015-11-29 16:52:09.329794090 +0100
|
||
|
@@ -862,7 +862,10 @@
|
||
|
pkgDataFlags[i] = NULL;
|
||
|
}
|
||
|
}
|
||
|
- currentBufferSize = tmpResult;
|
||
|
+ if (tmpResult > currentBufferSize)
|
||
|
+ currentBufferSize = tmpResult;
|
||
|
+ else
|
||
|
+ currentBufferSize *= 2;
|
||
|
} else if (U_FAILURE(status)) {
|
||
|
fprintf(stderr,"Unable to open or read \"%s\" option file. status = %s\n", o->options, u_errorName(status));
|
||
|
return -1;
|