diff --git a/libMEDSannotation/src/MEDS_FuncPrototypeAnnotation.cpp b/libMEDSannotation/src/MEDS_FuncPrototypeAnnotation.cpp index 1e379568f30c74a276083a3eda7e9dce37c563b8..172835c6645c9fda49ac185d9c951798401c198b 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);