commit 4ea0fd6af41beffc3eea1efcf8a0427a9d122b9c
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Fri Mar 24 15:25:42 2017 +0100

    Two places where coverity urges us to limit string length
    
    These two issues make sense, but there are probably others.
---
 src/insets/InsetTabular.cpp |    3 +++
 src/mathed/MathFactory.cpp  |    4 ++++
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp
index 8881735..1fc492e 100644
--- a/src/insets/InsetTabular.cpp
+++ b/src/insets/InsetTabular.cpp
@@ -66,6 +66,7 @@
 #include "support/unique_ptr.h"
 
 #include <cstring>
+#include <iomanip>
 #include <iostream>
 #include <limits>
 #include <sstream>
@@ -5356,6 +5357,8 @@ void InsetTabular::tabularFeatures(Cursor & cur, string 
const & argument)
        cur.recordUndoInset(this);
 
        istringstream is(argument);
+       // limit the size of strings we read to avoid memory problems
+       is >> setw(65636);
        string s;
        // Safe guard.
        size_t safe_guard = 0;
diff --git a/src/mathed/MathFactory.cpp b/src/mathed/MathFactory.cpp
index 2cd045b..79ae676 100644
--- a/src/mathed/MathFactory.cpp
+++ b/src/mathed/MathFactory.cpp
@@ -149,6 +149,8 @@ void initSymbols()
        }
 
        ifstream fs(filename.toFilesystemEncoding().c_str());
+       // limit the size of strings we read to avoid memory problems
+       fs >> setw(65636);
        string line;
        bool skip = false;
        while (getline(fs, line)) {
@@ -160,6 +162,8 @@ void initSymbols()
                // special case of iffont/else/endif
                if (line.size() >= 7 && line.substr(0, 6) == "iffont") {
                        istringstream is(line);
+                       // limit the size of strings we read to avoid memory 
problems
+                       is >> setw(65636);
                        string tmp;
                        is >> tmp;
                        is >> tmp;

Reply via email to