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