From 7d4b8b76068160afe9acd09896866cd46912104d Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Mon, 13 Mar 2017 18:16:27 +0100 Subject: [PATCH] Only accept non-negative lyxscale parameters Since lyxscale is unsigned, a negative value would lead to a very large positive value. Spotted by coverity. --- src/insets/InsetExternal.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/insets/InsetExternal.cpp b/src/insets/InsetExternal.cpp index 3b79249cc0..a88769b8ee 100644 --- a/src/insets/InsetExternal.cpp +++ b/src/insets/InsetExternal.cpp @@ -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); } -- 2.39.2