moralismercatus / crete

Open source concolic testing tool for binaries
1 stars 1 forks source link

Make potentially large data transfers over sockets streaming operations #173

Closed moralismercatus closed 7 years ago

moralismercatus commented 7 years ago

Presently, all data transfers over sockets are done by copying the all the requested data into memory and then sending it over a socket.

This is fine, generally, for serialized classes; however, when the data are large s.a. OS image files and trace dumps, the file may actually consume more memory than is available (causing thrashing).

A solution to this is to make those data transfers streaming operations. I.e., read in a chunk of data, send that data, receive and write the data chunk, until all the data is transferred.

moralismercatus commented 7 years ago

OS image and traces are now "stream" transmitted in chunks. In the future, this should be done for test cases as well, but there is little need for the time being.