Explorar o código

CPack: put local variable on the stack

Rolf Eike Beer %!s(int64=8) %!d(string=hai) anos
pai
achega
ec30129b41
Modificáronse 1 ficheiros con 3 adicións e 4 borrados
  1. 3 4
      Source/CPack/cmCPackDragNDropGenerator.cxx

+ 3 - 4
Source/CPack/cmCPackDragNDropGenerator.cxx

@@ -561,8 +561,9 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
           cmCPackLogger(cmCPackLog::LOG_ERROR, languages[i]
                           << " 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);
         LangCode lang = 0;
         RegionCode region = 0;
@@ -575,11 +576,9 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
           cmCPackLogger(cmCPackLog::LOG_ERROR,
                         "No language/region code available for "
                           << iso_language_cstr << std::endl);
-          free(iso_language_cstr);
           return 0;
         }
 #ifdef HAVE_CoreServices
-        free(iso_language_cstr);
         header_data.push_back(region);
         header_data.push_back(i);
         header_data.push_back(0);