1
0
Эх сурвалжийг харах

CPack: put local variable on the stack

Rolf Eike Beer 8 жил өмнө
parent
commit
ec30129b41

+ 3 - 4
Source/CPack/cmCPackDragNDropGenerator.cxx

@@ -561,8 +561,9 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
           cmCPackLogger(cmCPackLog::LOG_ERROR, languages[i]
           cmCPackLogger(cmCPackLog::LOG_ERROR, languages[i]
                           << " is not a recognized language" << std::endl);
                           << " is not a recognized language" << std::endl);
         }
         }
-        char* iso_language_cstr = static_cast<char*>(malloc(65));
-        CFStringGetCString(iso_language, iso_language_cstr, 64,
+        char iso_language_cstr[65];
+        CFStringGetCString(iso_language, iso_language_cstr,
+                           sizeof(iso_language_cstr) - 1,
                            kCFStringEncodingMacRoman);
                            kCFStringEncodingMacRoman);
         LangCode lang = 0;
         LangCode lang = 0;
         RegionCode region = 0;
         RegionCode region = 0;
@@ -575,11 +576,9 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
           cmCPackLogger(cmCPackLog::LOG_ERROR,
           cmCPackLogger(cmCPackLog::LOG_ERROR,
                         "No language/region code available for "
                         "No language/region code available for "
                           << iso_language_cstr << std::endl);
                           << iso_language_cstr << std::endl);
-          free(iso_language_cstr);
           return 0;
           return 0;
         }
         }
 #ifdef HAVE_CoreServices
 #ifdef HAVE_CoreServices
-        free(iso_language_cstr);
         header_data.push_back(region);
         header_data.push_back(region);
         header_data.push_back(i);
         header_data.push_back(i);
         header_data.push_back(0);
         header_data.push_back(0);