mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 15:32:59 +02:00
helpers/readFile: limit memory allocations
This commit is contained in:
committed by
Jacek Jendrzej
parent
0d9139054a
commit
2f39081708
@@ -1455,8 +1455,16 @@ string readFile(string file)
|
|||||||
if (tmpData.is_open()) {
|
if (tmpData.is_open()) {
|
||||||
tmpData.seekg(0, tmpData.end);
|
tmpData.seekg(0, tmpData.end);
|
||||||
int length = tmpData.tellg();
|
int length = tmpData.tellg();
|
||||||
|
if (length > 0xffff) { /* longer than 64k? better read in chunks! */
|
||||||
|
cerr << __func__ << ": file " << file << " too big (" << length << " bytes)" << endl;
|
||||||
|
return "";
|
||||||
|
}
|
||||||
tmpData.seekg(0, tmpData.beg);
|
tmpData.seekg(0, tmpData.beg);
|
||||||
char* buffer = new char[length+1];
|
char* buffer = new char[length+1];
|
||||||
|
if (! buffer) {
|
||||||
|
cerr << __func__ << ": allocating " << (length + 1) << " bytes for buffer failed" << endl;
|
||||||
|
return "";
|
||||||
|
}
|
||||||
tmpData.read(buffer, length);
|
tmpData.read(buffer, length);
|
||||||
tmpData.close();
|
tmpData.close();
|
||||||
buffer[length] = '\0';
|
buffer[length] = '\0';
|
||||||
|
Reference in New Issue
Block a user