diff --git a/src/model_menus.cpp b/src/model_menus.cpp index c51a540a8..626d71f3f 100644 --- a/src/model_menus.cpp +++ b/src/model_menus.cpp @@ -2243,7 +2243,7 @@ void menuProcFunctionSwitches(uint8_t event) uint8_t active = (attr && (s_editMode>0 || p1valdiff)); switch (j) { case 0: - putsSwitches(3, y, sd->swtch, attr | ((getSwitch(sd->swtch, 0) && (sd->func >= 16 || (FSW_PARAM(sd) & 1))) ? BOLD : 0)); + putsSwitches(3, y, sd->swtch, attr | ((abs(sd->swtch) <= MAX_SWITCH && getSwitch(sd->swtch, 0) && (sd->func >= 16 || (FSW_PARAM(sd) & 1))) ? BOLD : 0)); if (active) { CHECK_INCDEC_MODELSWITCH( event, sd->swtch, SWITCH_OFF-MAX_SWITCH, SWITCH_ON+MAX_SWITCH); } diff --git a/src/open9x.cpp b/src/open9x.cpp index 61b19b254..210836650 100644 --- a/src/open9x.cpp +++ b/src/open9x.cpp @@ -1701,8 +1701,9 @@ void evalFunctions() else if (sd->func == FUNC_PLAY_TRACK) { if (!audioBusy()) { char lfn[32] = SOUNDS_PATH "/"; - strcat(lfn, sd->param); - strcat(lfn, SOUNDS_EXT); + strncpy(lfn+sizeof(SOUNDS_PATH), sd->param, sizeof(sd->param)); + lfn[sizeof(SOUNDS_PATH)+sizeof(sd->param)] = '\0'; + strcat(lfn+sizeof(SOUNDS_PATH), SOUNDS_EXT); playFile(lfn); } } @@ -1727,6 +1728,7 @@ void evalFunctions() #if defined(DEBUG) if (sd->func == FUNC_TEST) { + printf("%d ", sd->swtch); testFunc(); } #endif