]> git.lyx.org Git - features.git/commitdiff
Only accept non-negative lyxscale parameters
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 13 Mar 2017 17:16:27 +0000 (18:16 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 14 Mar 2017 13:25:08 +0000 (14:25 +0100)
Since lyxscale is unsigned, a negative value would lead to a very
large positive value.

Spotted by coverity.

src/insets/InsetExternal.cpp

index 3b79249cc0b4c08a2e5e3f21ad6b7185cf180d15..a88769b8ee3c4a587ae259b59251acc23b2c9087 100644 (file)
@@ -289,17 +289,23 @@ bool InsetExternalParams::read(Buffer const & buffer, Lexer & lex)
                        filename = buffer.getReferencedFileName(name);
                        break;
                }
-               
+
                case EX_DISPLAY: {
                        lex.next();
                        display = lex.getString() != "false";
                        break;
                }
 
-               case EX_LYXSCALE:
+               case EX_LYXSCALE: {
                        lex.next();
-                       lyxscale = lex.getInteger();
+                       int const ls = lex.getInteger();
+                       // negative values are not accepted.
+                       if (ls >= 0)
+                               lyxscale = ls;
+                       else
+                               lex.printError("ExternalInset::read: Wrong lyxscale: $$Token");
                        break;
+               }
 
                case EX_DRAFT:
                        draft = true;
@@ -379,8 +385,6 @@ bool InsetExternalParams::read(Buffer const & buffer, Lexer & lex)
 
        if (lyxerr.debugging(Debug::EXTERNAL)) {
                lyxerr  << "InsetExternalParams::read:\n";
-               // false positive
-               // coverity[NEGATIVE_RETURNS]
                write(buffer, lyxerr);
        }