@@ -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 {
0 commit comments