cache latin string conversion in QLocalServerPrivate::listen()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2020-11-13 10:25:51 +02:00
parent e29752f0f6
commit 7215a52da0

View file

@ -85,13 +85,14 @@ bool QLocalServerPrivate::listen(const QString &requestedServerName)
// Construct the unix address // Construct the unix address
struct ::sockaddr_un addr; struct ::sockaddr_un addr;
addr.sun_family = PF_UNIX; addr.sun_family = PF_UNIX;
if (sizeof(addr.sun_path) < (uint)fullServerName.toLatin1().size() + 1) { QByteArray latinFullServerName = fullServerName.toLatin1();
if (sizeof(addr.sun_path) < (uint)latinFullServerName.size() + 1) {
setError(QLatin1String("QLocalServer::listen")); setError(QLatin1String("QLocalServer::listen"));
closeServer(); closeServer();
return false; return false;
} }
::memcpy(addr.sun_path, fullServerName.toLatin1().data(), ::memcpy(addr.sun_path, latinFullServerName.constData(),
fullServerName.toLatin1().size() + 1); latinFullServerName.size() + 1);
// bind // bind