diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2012-08-09 08:34:41 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2012-08-09 08:34:41 +0300 |
commit | 5bc42bd9a3725e30d9ad5bf4d7cb90779237c9c1 (patch) | |
tree | 7f9ca1abd7e6a295a1f7dc846f92e096cbefd1bd /utilities.cpp | |
parent | 64c6452c697a05ab0b0d4bbbda167ddc35215397 (diff) |
used dynamic buffer for gpg data (fixes problem with large gpg output)
Diffstat (limited to 'utilities.cpp')
-rwxr-xr-x | utilities.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/utilities.cpp b/utilities.cpp index 2207213..56d3033 100755 --- a/utilities.cpp +++ b/utilities.cpp @@ -612,16 +612,18 @@ int onSendFile(WPARAM w, LPARAM l) void storeOutput(HANDLE ahandle, string *output) { BOOL success; - char readbuffer[4096] = {0}; + char *readbuffer = NULL; unsigned long transfered, available; do { PeekNamedPipe(ahandle,NULL,0,NULL,&available,NULL); if (!available) continue; - success=ReadFile(ahandle,readbuffer,sizeof(readbuffer),&transfered,NULL); + readbuffer = (char*)mir_alloc(available); + success=ReadFile(ahandle,readbuffer,available,&transfered,NULL); if (success && transfered) - output->append(readbuffer, 4096); + output->append(readbuffer, available); + mir_free(readbuffer); } while (available>0); } |