Fixed stack buffer overflow in Qt GUI loading a ROM with a large filepath from file dialog.

This commit is contained in:
harry 2023-01-16 09:44:32 -05:00
parent 3564f61849
commit ba47f169ca
1 changed files with 6 additions and 5 deletions

View File

@ -43,26 +43,27 @@ static void MessageOutput(QtMsgType type, const QMessageLogContext &context, con
switch (type) switch (type)
{ {
case QtDebugMsg: case QtDebugMsg:
sprintf( cmsg, "Qt Debug: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function); snprintf( cmsg, sizeof(cmsg), "Qt Debug: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
FCEUD_Message(cmsg); FCEUD_Message(cmsg);
break; break;
case QtInfoMsg: case QtInfoMsg:
sprintf( cmsg, "Qt Info: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function); snprintf( cmsg, sizeof(cmsg), "Qt Info: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
FCEUD_Message(cmsg); FCEUD_Message(cmsg);
break; break;
case QtWarningMsg: case QtWarningMsg:
sprintf( cmsg, "Qt Warning: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function); snprintf( cmsg, sizeof(cmsg), "Qt Warning: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
FCEUD_Message(cmsg); FCEUD_Message(cmsg);
break; break;
case QtCriticalMsg: case QtCriticalMsg:
sprintf( cmsg, "Qt Critical: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function); snprintf( cmsg, sizeof(cmsg), "Qt Critical: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
FCEUD_PrintError(cmsg); FCEUD_PrintError(cmsg);
break; break;
case QtFatalMsg: case QtFatalMsg:
sprintf( cmsg, "Qt Fatal: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function); snprintf( cmsg, sizeof(cmsg), "Qt Fatal: %s (%s:%u, %s)\n", localMsg.constData(), file, context.line, function);
FCEUD_PrintError(cmsg); FCEUD_PrintError(cmsg);
break; break;
} }
cmsg[sizeof(cmsg)-1] = 0;
fprintf(stderr, "%s", cmsg ); fprintf(stderr, "%s", cmsg );
} }