Fixed buffer overrun in handleDREF

This commit is contained in:
Chris Teubert
2014-11-24 12:13:07 -08:00
parent 33283701f3
commit dde81b9706
18 changed files with 32 additions and 16 deletions

Binary file not shown.

View File

@@ -804,8 +804,8 @@ int handleGETD(char buf[])
char the_message[5000];
char header[5] = {0};
int count = 6;
float values[40] = {-998};
int intArray[40] = {-998};
float values[100] = {-998};
int intArray[100] = {-998};
int DREFSizes[100] = {0};
char *DREFArray[100];
@@ -871,12 +871,12 @@ int handleGETD(char buf[])
{case 8: //Float Array
length = XPLMGetDatavf(connectionList[current_connection].XPLMRequestedDRefs[i],NULL,0,8); //find size of array
XPLMGetDatavf(connectionList[current_connection].XPLMRequestedDRefs[i],values,0,length);
XPLMGetDatavf(connectionList[current_connection].XPLMRequestedDRefs[i],values,0,fminl(length,100));
break;}
{case 16: //Integer Array
length = XPLMGetDatavi(connectionList[current_connection].XPLMRequestedDRefs[i],NULL,0,8); //find size of array
XPLMGetDatavi(connectionList[current_connection].XPLMRequestedDRefs[i],intArray,0,length);
XPLMGetDatavi(connectionList[current_connection].XPLMRequestedDRefs[i],intArray,0,fminl(length,100));
for (k=0; k < length; k++) {
values[k]=(float) intArray[k];
}

View File

@@ -1,7 +1,7 @@
dependencies: \
/Users/cteubert/Documents/XPlaneConnect/xpcPlugin/XPCPlugin.cpp \
/Users/cteubert/Documents/XPC\ Project/XPlaneConnect/xpcPlugin/XPCPlugin.cpp \
SDK/CHeaders/XPLM/XPLMProcessing.h SDK/CHeaders/XPLM/XPLMDefs.h \
SDK/CHeaders/XPLM/XPLMGraphics.h \
/Users/cteubert/Documents/XPlaneConnect/xpcPlugin/xpcPluginTools.h \
/Users/cteubert/Documents/XPlaneConnect/C/src/xplaneConnect.h \
/Users/cteubert/Documents/XPC\ Project/XPlaneConnect/xpcPlugin/xpcPluginTools.h \
/Users/cteubert/Documents/XPC\ Project/XPlaneConnect/C/src/xplaneConnect.h \
SDK/CHeaders/XPLM/XPLMDataAccess.h

View File

@@ -1,4 +1,4 @@
/Users/cteubert/Documents/XPlaneConnect/xpcPlugin/build/xpcPlugin.build/Debug/xpcPlugin.build/Objects-normal/x86_64/xplaneConnect.o
/Users/cteubert/Documents/XPlaneConnect/xpcPlugin/build/xpcPlugin.build/Debug/xpcPlugin.build/Objects-normal/x86_64/XPCPlugin.o
/Users/cteubert/Documents/XPlaneConnect/xpcPlugin/build/xpcPlugin.build/Debug/xpcPlugin.build/Objects-normal/x86_64/xpcPluginTools.o
/Users/cteubert/Documents/XPlaneConnect/xpcPlugin/build/xpcPlugin.build/Debug/xpcPlugin.build/Objects-normal/x86_64/xpcPlugin_vers.o
/Users/cteubert/Documents/XPC Project/XPlaneConnect/xpcPlugin/build/xpcPlugin.build/Debug/xpcPlugin.build/Objects-normal/x86_64/xplaneConnect.o
/Users/cteubert/Documents/XPC Project/XPlaneConnect/xpcPlugin/build/xpcPlugin.build/Debug/xpcPlugin.build/Objects-normal/x86_64/XPCPlugin.o
/Users/cteubert/Documents/XPC Project/XPlaneConnect/xpcPlugin/build/xpcPlugin.build/Debug/xpcPlugin.build/Objects-normal/x86_64/xpcPluginTools.o
/Users/cteubert/Documents/XPC Project/XPlaneConnect/xpcPlugin/build/xpcPlugin.build/Debug/xpcPlugin.build/Objects-normal/x86_64/xpcPlugin_vers.o

View File

@@ -1,5 +1,5 @@
dependencies: \
/Users/cteubert/Documents/XPlaneConnect/xpcPlugin/xpcPluginTools.cpp \
/Users/cteubert/Documents/XPlaneConnect/xpcPlugin/xpcPluginTools.h \
/Users/cteubert/Documents/XPlaneConnect/C/src/xplaneConnect.h \
/Users/cteubert/Documents/XPC\ Project/XPlaneConnect/xpcPlugin/xpcPluginTools.cpp \
/Users/cteubert/Documents/XPC\ Project/XPlaneConnect/xpcPlugin/xpcPluginTools.h \
/Users/cteubert/Documents/XPC\ Project/XPlaneConnect/C/src/xplaneConnect.h \
SDK/CHeaders/XPLM/XPLMDataAccess.h SDK/CHeaders/XPLM/XPLMDefs.h

View File

@@ -1,3 +1,3 @@
dependencies: \
/Users/cteubert/Documents/XPlaneConnect/C/src/xplaneConnect.c \
/Users/cteubert/Documents/XPlaneConnect/C/src/xplaneConnect.h
/Users/cteubert/Documents/XPC\ Project/XPlaneConnect/C/src/xplaneConnect.c \
/Users/cteubert/Documents/XPC\ Project/XPlaneConnect/C/src/xplaneConnect.h

View File

@@ -17,5 +17,21 @@
endingLineNumber = "12">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "XPCPlugin.cpp"
timestampString = "438549105.218957"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "890"
endingLineNumber = "890"
landmarkName = "handleGETD(char buf[])"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>