Jelajahi Sumber

More stack->heap

Adam Ierymenko 6 tahun lalu
induk
melakukan
c5a07c7f20
1 mengubah file dengan 10 tambahan dan 5 penghapusan
  1. 10 5
      service/OneService.cpp

+ 10 - 5
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");