]> www.ginac.de Git - ginac.git/blobdiff - ginac/excompiler.cpp
Fix dangerous iterator use.
[ginac.git] / ginac / excompiler.cpp
index 375776d8e1428595f1ce4a8d42c9ac9f8f8d6e7e..80e4dd1962aec57ef28d5f5efaf9b0168c6bde6a 100644 (file)
@@ -113,12 +113,12 @@ public:
                        char* new_filename = new char[strlen(filename_pattern)+1];
                        strcpy(new_filename, filename_pattern);
                        if (!mktemp(new_filename)) {
-                               delete new_filename;
+                               delete[] new_filename;
                                throw std::runtime_error("mktemp failed");
                        }
                        filename = std::string(new_filename);
                        ofs.open(new_filename, std::ios::out);
-                       delete new_filename;
+                       delete[] new_filename;
                } else {
                        // use parameter as filename
                        ofs.open(filename.c_str(), std::ios::out);
@@ -172,7 +172,7 @@ public:
                for (std::vector<filedesc>::iterator it = filelist.begin(); it != filelist.end();) {
                        if (it->name == filename) {
                                clean_up(it);
-                               filelist.erase(it);
+                               it = filelist.erase(it);
                        } else {
                                ++it;
                        }