[Crosstoolchain-logs] [device-tree-compiler] 17/58: dtc: Fix memory leak in character literal parsing

Vagrant Cascadian vagrant at moszumanska.debian.org
Mon Sep 25 16:23:45 UTC 2017


This is an automated email from the git hooks/post-receive script.

vagrant pushed a commit to branch debian/master
in repository device-tree-compiler.

commit f88865469b65455bdc4ebe7ad8601fafea9b8ef3
Author: Gabriel Smith <ga29smith at gmail.com>
Date:   Sun Dec 11 15:13:16 2016 -0500

    dtc: Fix memory leak in character literal parsing
    
    The data struct used for parsing character literals was never freed
    resulting in a few bytes leaked for every character.
    
    Signed-off-by: Gabriel Smith <ga29smith at gmail.com>
    Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
---
 dtc-lexer.l | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/dtc-lexer.l b/dtc-lexer.l
index 40bbc87..c600603 100644
--- a/dtc-lexer.l
+++ b/dtc-lexer.l
@@ -189,16 +189,16 @@ static void lexical_error(const char *fmt, ...);
 			if (d.len == 1) {
 				lexical_error("Empty character literal");
 				yylval.integer = 0;
-				return DT_CHAR_LITERAL;
-			}
-
-			yylval.integer = (unsigned char)d.val[0];
+			} else {
+				yylval.integer = (unsigned char)d.val[0];
 
-			if (d.len > 2)
-				lexical_error("Character literal has %d"
-					      " characters instead of 1",
-					      d.len - 1);
+				if (d.len > 2)
+					lexical_error("Character literal has %d"
+						      " characters instead of 1",
+						      d.len - 1);
+			}
 
+			data_free(d);
 			return DT_CHAR_LITERAL;
 		}
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/crosstoolchain/device-tree-compiler.git



More information about the Crosstoolchain-logs mailing list