Browse Source

CPackIFWInstaller: Avoid potential null pointer dereference

In d16830324f (CPackIFW: Improve warning and docs for show page list
option, 2021-02-14), code was added to report the current QtIFW version.
That code didn't check that there was a Generator object before using it,
resulting in a scanbuild warning about a potential null pointer dereference.
Add a check and output a more general warning message if we don't have
the current QtIFW version available to report.
Craig Scott 4 years ago
parent
commit
90c2f138ee
1 changed files with 9 additions and 2 deletions
  1. 9 2
      Source/CPack/IFW/cmCPackIFWInstaller.cxx

+ 9 - 2
Source/CPack/IFW/cmCPackIFWInstaller.cxx

@@ -186,13 +186,20 @@ void cmCPackIFWInstaller::ConfigureFromOptions()
         this->WizardShowPageList.clear();
       }
     } else {
+      std::string currentVersionMsg;
+      if (this->Generator) {
+        currentVersionMsg =
+          "QtIFW version " + this->Generator->FrameworkVersion;
+      } else {
+        currentVersionMsg = "an older QtIFW version";
+      }
       cmCPackIFWLogger(
         WARNING,
         "Option CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST is set to \""
           << option
           << "\", but it is only supported with QtIFW version 4.0 or later. "
-             "It is being ignored because you are using QtIFW version "
-          << this->Generator->FrameworkVersion.data() << std::endl);
+             "It is being ignored because you are using "
+          << currentVersionMsg << std::endl);
     }
   }