diff options
-rw-r--r-- | service/OneService.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/service/OneService.cpp b/service/OneService.cpp index 566b4750..0043204c 100644 --- a/service/OneService.cpp +++ b/service/OneService.cpp @@ -2455,11 +2455,16 @@ public: // little effect on others. f = fopen(p,"rb"); if (f) { - char buf[65535]; - long l = (long)fread(buf,1,sizeof(buf),f); - fclose(f); - if ((l == (long)len)&&(memcmp(data,buf,l) == 0)) - return; + char *const buf = (char *)malloc(len*4); + if (buf) { + long l = (long)fread(buf,1,(size_t)(len*4),f); + fclose(f); + if ((l == (long)len)&&(memcmp(data,buf,l) == 0)) { + free(buf); + return; + } + free(buf); + } } f = fopen(p,"wb"); |