Browse Source

HPCC-26236 Coverity warnings related to ccdcache code

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 3 years ago
parent
commit
189b1ba59d
1 changed files with 4 additions and 3 deletions
  1. 4 3
      roxie/ccdcache/ccdcache.cpp

+ 4 - 3
roxie/ccdcache/ccdcache.cpp

@@ -173,7 +173,7 @@ class StandaloneCacheWarmer : implements ICacheWarmer
     unsigned pagesTouched = 0;
     char *file_mmap = nullptr;
     int fd = -1;
-    struct stat file_stat;
+    struct stat file_stat = {};
     char dummy = 0;
 
     void warmRange(offset_t startOffset, offset_t endOffset)
@@ -197,9 +197,8 @@ public:
     {
         file_mmap = nullptr;
         fd = open(filename, 0);
-        if (fd != -1)
+        if (fd != -1 && fstat(fd, &file_stat)==0)
         {
-            fstat(fd, &file_stat);
             file_mmap = (char *) mmap((void *)0, file_stat.st_size, PROT_READ, MAP_SHARED, fd, 0);
             if (file_mmap == MAP_FAILED)
             {
@@ -298,6 +297,8 @@ int main(int argc, const char **argv)
             cacheFileName = argv[arg];
         arg++;
     }
+    if (!cacheFileName)
+        usage();
     StringBuffer cacheInfo;
     install_signal_handlers();
     StandaloneCacheWarmer warmer(traceLevel);