Buffer overflow in Companion Wizard

This commit is contained in:
bsongis
2014-06-06 22:36:00 +02:00
parent 9a502461df
commit a19fff0998
2 changed files with 5 additions and 3 deletions
+3 -1
View File
@@ -635,6 +635,8 @@ enum MltpxValue {
MLTPX_REP=2
};
#define MIXDATA_NAME_LEN 10
class MixData {
public:
MixData() { clear(); }
@@ -653,7 +655,7 @@ class MixData {
unsigned int mixWarn; // mixer warning
unsigned int phases; // -5=!FP4, 0=normal, 5=FP4
int sOffset;
char name[10+1];
char name[MIXDATA_NAME_LEN+1];
void clear() { memset(this, 0, sizeof(MixData)); }
};
+2 -2
View File
@@ -42,8 +42,8 @@ WizMix::WizMix(const GeneralSettings & settings, const unsigned int modelId):
void WizMix::maxMixSwitch(char *name, MixData &mix, int channel, int sw, int weight)
{
strncpy(mix.name, name, sizeof(mix.name));
mix.name[sizeof(mix.name)]=0;
strncpy(mix.name, name, MIXDATA_NAME_LEN);
mix.name[MIXDATA_NAME_LEN] = '\0';
mix.destCh = channel;
mix.srcRaw = RawSource(SOURCE_TYPE_MAX);
mix.swtch = RawSwitch(SWITCH_TYPE_SWITCH, sw);