Blob Blame History Raw
diff -ur M.A.R.S.-marsshooter-0.7.6/src/Media/file.cpp M.A.R.S.-marsshooter-0.7.6.fixed/src/Media/file.cpp
--- M.A.R.S.-marsshooter-0.7.6/src/Media/file.cpp	2016-01-10 14:40:55.000000000 +0100
+++ M.A.R.S.-marsshooter-0.7.6.fixed/src/Media/file.cpp	2019-08-21 17:05:42.647215841 +0200
@@ -37,15 +37,15 @@
             while (std::getline(fileStream, line, '\n')) {
                 ++ lineCount;
                 // remove '\r' at end of lines, when file has a CR LF EOL (windows...)
-                if (*(line.end()-1) == '\r')
+                if (line.size() && *(line.end()-1) == '\r')
                     line.erase(line.end()-1);
                 // Convert it to utf-32
                 int inSize = line.size();
-                FriBidiChar logical[inSize];
+                FriBidiChar logical[inSize + 1];
                 const char* tmp(line.c_str());
                 int outSize = fribidi_charset_to_unicode(FRIBIDI_CHAR_SET_UTF8, tmp, inSize, logical);
 
-                FriBidiChar visual[outSize];
+                FriBidiChar visual[outSize + 1];
                 FriBidiParType base = FRIBIDI_PAR_LTR;
                 fribidi_log2vis(logical, outSize, &base, visual, NULL, NULL, NULL);