]> git.lyx.org Git - features.git/commitdiff
Experiment: limit size of strings read from lib/symbols
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 10 Mar 2017 15:29:09 +0000 (16:29 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 10 Mar 2017 15:29:09 +0000 (16:29 +0100)
Coverity complains that we might read strings that are arbitrary
large, and that this can be a security issue. This is a problem in
particular, when we feed these strings to from_utf8(), which coverity
flags as dangerous for some reason.

The best solution would be IMO to model from_utf8() properly, but I do
not know how to do that. Here I try a different solution, where I
cannot read a string larger than 64k from the file.

Let's see whether this removes part of coverity warnings.

src/mathed/MathFactory.cpp

index 3198f80de66688c3da5617e6bc7820345906bf46..2cd045b0ccb7930ce32f0a88e94a16083dba433d 100644 (file)
@@ -74,6 +74,7 @@
 #include "LyX.h" // use_gui
 #include "OutputParams.h"
 
+#include <iomanip>
 
 using namespace std;
 using namespace lyx::support;
@@ -188,7 +189,7 @@ void initSymbols()
                        string extra;
                        string xmlname;
                        bool hidden = false;
-                       is >> macro >> requires;
+                       is >> setw(65536) >> macro >> requires;
                        if ((is >> xmlname)) {
                                extra = requires;
                                if (!(is >> requires))