Skip to content

Commit 237bf8b

Browse files
committed
Fix char array bugs
1 parent 6ae5fe9 commit 237bf8b

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

YATE.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ CONFIG += c++11 DISCORD_ENABLED
77
# You can make your code fail to compile if it uses deprecated APIs.
88
# In order to do so, uncomment the following line.
99
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
10-
VERSION = 1.2.0.0
10+
VERSION = 1.2.1.0
1111
SOURCES += \
1212
analysisviewitem.cpp \
1313
analysisviewmodel.cpp \

discordmanager.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@ DiscordManager::DiscordManager(QObject *parent)
2525
{
2626
qDebug() << "Discord Manager: Initalizing Discord Manager.";
2727
qDebug() << "Discord Manager: DISCORD_INSTANCE_ID " << qgetenv("DISCORD_INSTANCE_ID");
28-
partyId_ = QUuid::createUuid().toString();
29-
QByteArray partyBA = partyId_.toUtf8();
30-
std::strncpy(partyIdArr_, partyBA.data(), partyId_.size());
3128
connect(updateTimer_, &QTimer::timeout, this, &DiscordManager::update);
3229
connect(messageBufferTimer_, &QTimer::timeout, this, &DiscordManager::checkMessageBuffers);
3330
setup();
@@ -216,7 +213,8 @@ void DiscordManager::setup(bool emitErrors)
216213
QString appPath = QCoreApplication::applicationFilePath();
217214
appPath.replace("/", "\\");
218215
QByteArray appPathBA = appPath.toUtf8();
219-
std::strncpy(appCommand, appPathBA.data(), 2048);
216+
std::memset(appCommand, 0, 2048);
217+
std::strncpy(appCommand, appPathBA.data(), strlen(appPathBA.data()));
220218

221219

222220
if (userResult == discord::Result::Ok) {
@@ -297,7 +295,7 @@ void DiscordManager::setup(bool emitErrors)
297295
QString idStr = QString::number(lobbyId_);
298296
QByteArray idStrBA = idStr.toUtf8();
299297
memset(lobbyIdStr_, 0, 512);
300-
strncpy(lobbyIdStr_, idStrBA.data(), idStr.size());
298+
strncpy(lobbyIdStr_, idStrBA.data(), strlen(idStrBA.data()));
301299
emit onLobbyIdChange(QString::fromUtf8(lobbySecret_));
302300

303301
} else {
@@ -396,7 +394,9 @@ bool DiscordManager::connectTo(QString lobbySecret)
396394
if (settings_->value(SETTINGS_KEY_DISCORD_FEATURES, true).toBool() && settings_->value(SETTINGS_KEY_DISCORD_NETWORKING, true).toBool()) {
397395
qDebug() << "Discord Manager: Parsing lobby secret";
398396
QByteArray lobbySecretBA = lobbySecret.toUtf8();
399-
strncpy(peerLobbySecret_, lobbySecretBA.data(), lobbySecret.size());
397+
memset(peerLobbySecret_, 0, 512);
398+
std::strncpy(peerLobbySecret_, lobbySecretBA.data(), strlen(lobbySecretBA.data()));
399+
qDebug() << "Casted secret: " << peerLobbySecret_;
400400
auto split = lobbySecret.split(":");
401401
if (split.size() != 2) {
402402
qWarning() << "Discord Manager: Invalid secret format";
@@ -416,7 +416,7 @@ bool DiscordManager::connectTo(QString lobbySecret)
416416
QString idStr = QString::number(peerLobbyId_);
417417
QByteArray idStrBA = idStr.toUtf8();
418418
memset(peerLobbyIdStr_, 0, 512);
419-
strncpy(peerLobbyIdStr_, idStrBA.data(), idStr.size());
419+
std::strncpy(peerLobbyIdStr_, idStrBA.data(), strlen(idStrBA.data()));
420420
qDebug() << "Discord Manager: Emitting connection succeeded";
421421
emit connectionSucceeded();
422422
} else {

discordmanager.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,6 @@ public slots:
100100
char peerLobbyIdStr_[512];
101101
char peerLobbySecret_[512];
102102
char appCommand[2048];
103-
QString partyId_;
104-
char partyIdArr_[512];
105103
bool isHost_;
106104
bool activityIsHost_;
107105
bool commandRegistered_;

0 commit comments

Comments
 (0)