|
|
@@ -969,6 +969,11 @@ bool cmSystemTools::FilesDiffer(const char* source,
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ if(statSource.st_size == 0)
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
#if defined(_WIN32) || defined(__CYGWIN__)
|
|
|
std::ifstream finSource(source,
|
|
|
std::ios::binary | std::ios::in);
|
|
|
@@ -984,19 +989,7 @@ bool cmSystemTools::FilesDiffer(const char* source,
|
|
|
}
|
|
|
|
|
|
char* source_buf = new char[statSource.st_size];
|
|
|
- if (!source_buf)
|
|
|
- {
|
|
|
- cmSystemTools::Error("FilesDiffer failed to allocate memory for source!");
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
char* dest_buf = new char[statSource.st_size];
|
|
|
- if (!dest_buf)
|
|
|
- {
|
|
|
- cmSystemTools::Error("FilesDiffer failed to allocate memory for dest!");
|
|
|
- delete [] source_buf;
|
|
|
- return false;
|
|
|
- }
|
|
|
|
|
|
finSource.read(source_buf, statSource.st_size);
|
|
|
finDestination.read(dest_buf, statSource.st_size);
|