From 2828f575ef5e5ceb4548ac54118becfb0bde15cc Mon Sep 17 00:00:00 2001
From: an7s <an7s@git.zephyr-software.com>
Date: Wed, 11 May 2016 19:55:05 +0000
Subject: [PATCH] Fix buffer length

Former-commit-id: 24e2b72a8ba0e213e39b26c8c6017fe9d4601010
---
 libMEDSannotation/src/MEDS_FuncPrototypeAnnotation.cpp | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/libMEDSannotation/src/MEDS_FuncPrototypeAnnotation.cpp b/libMEDSannotation/src/MEDS_FuncPrototypeAnnotation.cpp
index 1e379568f..172835c66 100644
--- a/libMEDSannotation/src/MEDS_FuncPrototypeAnnotation.cpp
+++ b/libMEDSannotation/src/MEDS_FuncPrototypeAnnotation.cpp
@@ -28,6 +28,8 @@
 #include "MEDS_Register.hpp"
 #include "MEDS_FuncPrototypeAnnotation.hpp"
 
+#define MAX_BUF_SIZE 16000
+
 using namespace std;
 using namespace MEDS_Annotation;
 
@@ -79,8 +81,8 @@ void MEDS_FuncPrototypeAnnotation::parse()
 	{
 // 4046e0     71 FUNC INARGS    4  ARG0 1 ARG1 0 ARG2 0 ARG3 0
 		int numargs = 0;
-		char buf[1024];
-		strcpy(buf, m_rawInputLine.c_str());
+		char buf[MAX_BUF_SIZE];
+		strncpy(buf, m_rawInputLine.c_str(), MAX_BUF_SIZE-1);
 		sscanf(buf, "%*x %*d %*s %*s %d %*s", &numargs);
 		for (int i = 0; i < numargs; ++i)
 		{
@@ -89,7 +91,7 @@ void MEDS_FuncPrototypeAnnotation::parse()
 			char *zarg = strstr(buf, arg);
 			if (zarg)
 			{
-				char tmp[1024];
+				char tmp[MAX_BUF_SIZE];
 				int meds_type;
 				sscanf(tmp,"%*s %d %*s", &meds_type);
 				MEDS_Arg marg(meds_type);
@@ -105,7 +107,7 @@ void MEDS_FuncPrototypeAnnotation::parse()
 	else if (about_return)
 	{
 		// 404740    697 FUNC RETURNTYPE RAX 1
-		char regbuf[1024];
+		char regbuf[MAX_BUF_SIZE];
 		int meds_retType;
 		sscanf(m_rawInputLine.c_str(), "%*x %*d %*s %*s %s %d", regbuf, &meds_retType);
 		RegisterName reg = Register::getRegister(regbuf);
-- 
GitLab